1

我试图用 + 符号替换所有 %20,但只是当 url 以 /some/dir/ 开头时。例如:

http://mydomain.com/some/dir/replace%20here

应该重定向到

http://mydomain.com/some/dir/replace+here

http://mydomain.com/test/dir/replace%20here

不应该取代%20

到目前为止,我有:

RewriteCond %{REQUEST_URI} ^(/some/dir/)
RewriteRule ^([^\s%20]+)(?:\s|%20)+([^\s%20]+)((?:\s|%20)+.*)$ $1$2+$3 [N,DPI]
RewriteRule ^([^\s%20]+)(?:\s|%20)+(.*)$ /$1+$2 [L,R=301,DPI]

但这仍然取代了 /test/dir 中的 %20

我错过了什么?

谢谢!

4

1 回答 1

1

您的规则不正确,而且DPI并非所有 Apache 版本都支持标志。将您的重写规则更改为:

RewriteRule ^(some/dir)/([^\s%20]+)(?:\s|%20)+([^\s%20]+)(.*?)/?$ $1/$2+$3$4 [L,NC,R=301]
RewriteRule ^(some/dir)/([^\s%20]+)(?:\s|%20)+ $1/$2 [L,NC,R=301]
于 2012-11-27T15:50:20.187 回答