首页 > 解决方案 > htaccess - 重定向条件不适用于本地主机

问题描述

我在 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]

但这不适用于本地主机。URL 保持不变,旧的。我已经用https://htaccess.madewithlove.be/测试了这些规则,它们似乎按预期工作。那么这只是 localhost 的事情还是 htaccess 错误?

标签: .htaccesslocalhost

解决方案


您可以在以下情况下使用此规则foo/.htaccess

RewriteEngine on

RewriteCond %{QUERY_STRING} ^city=([^&]+)&(.*)$ [NC]
RewriteRule ^bar\.php$ /foo/%1/?%2 [L,R=301]

请注意,这将重定向到,因为在 URL之后http://localhost/www/foo/new_york/?data=4156没有&正确的意义。?


推荐阅读