Правило перезаписи htaccess для разных сред - PullRequest
0 голосов
/ 31 августа 2018

На нашем промежуточном сервере есть разные версии приложения PHP. Каждая версия в отдельной папке, так что премьер-министр может одобрить функцию за функцией. Структура выглядит так: - docroot - origin - develop - origin - feature - feature_1

URL выглядят так: - http://dev.example.com/project/origin/develop - http://dev.example.com/project/origin/feature/feature_1/

Местное развитие выглядит так: http://project.local/

Теперь я хочу переписать URL.

http://project.local/foo/example1/example2

должен переместиться на

http://project.local/bar/example1/example2

Я попробовал следующее:

RewriteCond %{REQUEST_URI} foo/(.*)
RewriteRule ^foo/(.*)?$ /bar/$1 [R=302,L]

, который работает как ожидается в локальной среде. На промежуточном сервере он перенаправляет с: http://dev.example.com/project/origin/develop/foo/example1/example2

до:

http://dev.example.com/bar/example1/example2

, который не работает. Есть ли способ справиться с этим в локальной и промежуточной среде?

1 Ответ

0 голосов
/ 31 августа 2018

Проблема в том, что на промежуточном сервере вы сохраняете это правило в .htaccess внутри /project/origin/develop вместо корня сайта .htaccess.

Вы можете использовать это общее правило, которое будет работать в обоих местах:

RewriteEngine On

RewriteCond %{REQUEST_URI} ^/(.*/)?foo/(.*)$ [NC]
RewriteRule ^ /%1bar/%2 [R=301,L,NE]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...