我正在尝试将用户从以下位置重定向:
http://example.com/search?poster=ABC123
到
http://example.com/name/ABC123
$_GET['poster']
变量I还允许用户输入通配符搜索(%)。问题就出在这里。当用户输入
%
(转换为
%25
Forbidden
You don't have permission to access /name/%25test on this server.
Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.
但是,在字符串的其他任何地方使用通配符都可以。
这是我的.htaccess文件。
Options -MultiViews
RewriteEngine On
Options -Indexes
RewriteBase /search
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^name/(.+)$ /?poster=$1 [QSA,L]
RewriteRule ^content/(.+)$ /?content=$1 [QSA,L]
RewriteRule ^title/(.+)$ /?title=$1 [QSA,L]
http://archive.rookstat.net/name/%25he <--- Error
http://archive.rookstat.net/name/he%25 <--- Works
http://archive.rookstat.net/name/hello <--- Works
我该怎么解决?我在重写规则中尝试了许多不同的组合,但我肯定做错了。旗子不正确吗?用户输入通配符并不总是这样。因此,我不想使用专门查找“%”或“%25”的规则,但如果用户确实输入了该规则,则不应认为它是文件夹或文件。。。或者别的什么。
http://archive.rookstat.net/search/?poster=%he
似乎它认为这是一个文件路径,而不是一个url。。。