当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]
我做错了什么?谢谢你看看。
答案 0 :(得分:2)
由于你没有使用RewriteCond捕获组,所以不需要?:并且也不需要(。+)组。试试这个,如果你不想让它真正改变浏览器中显示的网址,请删除R=302
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} (\+|\%)
RewriteRule ^(.*)$ /directory/content/my-redirect-rewrite.php [R=302,NC,L]