.htaccess将查询string重写为path
我已经search了这个问题,但我只能遇到真正具体的答案,似乎很难适应我的具体需求。
比方说,我试图重写的URL是这样的:
http://www.example.org/test.php?whatever=something
我想重写它,看起来像这样:
http://www.example.org/test/something
我该怎么做?
为了将/test/something
的请求路由到内部重写,以便/test.php?whatever=something
中的内容得到处理,您可以在文档根目录的htaccess文件中使用这些规则:
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^/?test/(.*?)/?$ /test.php?whatever=$1 [L]
为了将查询stringURLredirect到更好看的一个:
RewriteCond %{THE_REQUEST} ^[AZ]{3,9}\ /test\.php\?whatever=([^\&\ ]+) RewriteRule ^/?test\.php$ /test/%1? [L,R=301]