0

URL に + または % 文字が含まれている場合、その URL を、作成した PHP リダイレクト スクリプトにリダイレクトしたいと考えています。正規表現 (.+)(?:+|%)(.*)? + または % を含むすべての URL を検出しますが、- のような htaccess で使用すると機能しません。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} (.+)(?:\+|%)(.+)?
RewriteRule ^(.*)$ /directory/content/my-redirect-rewrite.php [L]

私は何を間違っていますか?ご覧いただきありがとうございます。

4

1 に答える 1

2

RewriteCond キャプチャ グループを使用していないため、?: は必要なく、(.+) グループも必要ありません。R=302これを試して、ブラウザに表示されるURLを実際に変更したくない場合は削除してください

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} (\+|\%)
RewriteRule ^(.*)$ /directory/content/my-redirect-rewrite.php [R=302,NC,L]
于 2012-11-21T07:40:10.657 に答える