我在htaccess中有此重定向
我要重定向
http://localhost/www/foo/bar.php?city=new_york&data=4156
到
http://localhost/www/foo/new_york/?&data=4156
我已经创建了此htaccess:
RewriteEngine on
RewriteCond %{REQUEST_URI} bar\.php$
RewriteCond %{QUERY_STRING} ^city\=([^&]+)(.*)$
RewriteRule ^(.*)/bar.php$ http://%{HTTP_HOST}/$1/%1/?%2 [L,R=301]
但这在localhost上不起作用。该URL保持不变。我已经用https://htaccess.madewithlove.be/测试了规则,它们似乎按预期工作。那么,这仅仅是本地主机还是htaccess错误?
答案 0 :(得分:1)
您可以在foo/.htaccess
中使用此规则:
RewriteEngine on
RewriteCond %{QUERY_STRING} ^city=([^&]+)&(.*)$ [NC]
RewriteRule ^bar\.php$ /foo/%1/?%2 [L,R=301]
请注意,这将重定向到http://localhost/www/foo/new_york/?data=4156
,因为在URL中&
之后没有?
。