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 回答