.htaccess用THE_REQUEST重写

时间:2019-01-16 09:53:49

标签: .htaccess

我想阻止Apache从我的URL中对%20进行URL解码,因为我在控制器中使用了部分URL作为参数。

我的.htaccess以前是这样的

Options -MultiViews
RewriteEngine ON

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.+)$ index.php?uri=$1 [QSA,L]

那基本上是完美的,除了访问“ / path / to / something%20interesting /”之类的URL时对%20进行解码。

我读到,THE_REQUEST提供了一个未解码的URL字符串。现在,我尝试使用THE_REQUEST的路径部分进行重写。我写了一个正则表达式,与我想要的THE_REQUEST部分匹配,但我不知道如何将字符串传递给RewriteRule。

RewriteCond %{THE_REQUEST} ^(/([a-zA-Z0-9/\-_()]|(%20))+)$
RewriteRule ^(.+)$ index.php?uri=$1 [QSA,L,NE]

感谢您的帮助。谢谢。

0 个答案:

没有答案