htaccess-重定向,但条件不适用于本地主机

时间:2019-04-05 08:24:44

标签: .htaccess localhost

我在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错误?

1 个答案:

答案 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中&之后没有?