Наклон получает правило RewriteCond работать в mod_rewrite

2 ответа

Контекст может иметь значение для правил перезаписи. Если ваш RewriteCond находится в файле .htaccess или внутри блока , в URI нет ведущей косой черты. Если он находится в любой другой части конфигурации Apache, URI будет начинаться с косой черты.

Причина в том, что в контексте каталога путь к файлу, ведущий к рассматриваемому каталогу, удаляется, и этот путь всегда заканчивается косой чертой.

В вашем случае также есть все это: /cgi-bin/hsrun.exe/Distributed/ перед битом Postphil , но вам требуется URI должен начинаться с postphil , поэтому RewriteCond также не будет соответствовать по этой причине.

Конец регулярного выражения ( l + ) означает «один или несколько l» что также немного странно, но поскольку он действительно соответствует единственному 'l', эта часть должна работать.

Если все, что вам нужно, это именно то, что вы сказали: "Если путь содержит папку / postphil I хотите перенаправить на новый домен », тогда это сработает, RewriteCond не нужен:

RewriteRule postphil https://www.newdomain.com/ [NC,R,L]

Я использовал перенаправление 302, а не 301, потому что браузеры кешируют 301. Даже если вы измените цель перенаправления, если ваш браузер уже видел 301 для этого URL-адреса, он просто перейдет туда. Вы можете изменить его на 301, когда закончите тестирование и будете довольны его работой.

нет необходимости в RewriteCond:

RewriteRule postphil https://www.newdomain.com/ [NC,R,L]

Я использовал перенаправление 302, а не 301, потому что браузеры кешируют 301-е. Даже если вы измените цель перенаправления, если ваш браузер уже видел 301 для этого URL-адреса, он просто перейдет туда. Вы можете изменить его на 301, когда закончите тестирование и будете довольны тем, что он работает правильно.

нет необходимости в RewriteCond:

RewriteRule postphil https://www.newdomain.com/ [NC,R,L]

Я использовал перенаправление 302, а не 301, потому что браузеры кешируют 301-е. Даже если вы измените цель перенаправления, если ваш браузер уже видел 301 для этого URL-адреса, он просто перейдет туда. Вы можете изменить его на 301, когда закончите тестирование и будете довольны тем, что он работает правильно.

1
ответ дан 23 November 2019 в 10:50

Попробуйте это и скажите, работает ли это:

RewriteCond %{REQUEST_URI} postphil [NC]
RewriteRule (.*) https://www.newdomain.com/$1 [R=301,L] 

Прочтите это:

Перенаправление, изменение URL-адресов или перенаправление HTTP на HTTPS в Apache - все, что вы когда-либо хотели знать о правилах Mod_Rewrite но боялись спросить

0
ответ дан 23 November 2019 в 10:50

Теги

Похожие вопросы