htaccess - перенаправление с условием не работает на localhost - PullRequest
1 голос
/ 05 апреля 2019

У меня есть это перенаправление в 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 Ответ

1 голос
/ 05 апреля 2019

Вы можете использовать это правило в 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...