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 に答える