我想阻止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]
感谢您的帮助。谢谢。