Я пытаюсь получить перенаправление, работающее для всех страниц, с шаблоном, за исключением одного конкретного случая. Я попытался следующие:.htaccess: перенаправить все страницы, кроме одного неработающего
RewriteCond %{HTTP_HOST} ^(www\.)?old\.com$
RewriteCond %{REQUEST_URI} !^/menu
RewriteRule ^(.*)$ "http\:\/\/www\.new\.com\/$1" [R=301,L]
Что я ожидал это
old.com -> new.com
old.com/abc - > new.com/abc
old.com/menu -> old.com/menu
Все переадресовывает работают отлично, за исключением:
old.com/menu -> old.com/http://www.new.com
, и я не могу понять, почему ,
EDIT: остальные .htaccess
RewriteOptions inherit
# Use PHP5.4 as default
AddHandler application/x-httpd-php54 .php
# For security reasons, Option followsymlinks cannot be overridden.
#Options +FollowSymLinks
Options +SymLinksIfOwnerMatch
RewriteCond %{HTTP_HOST} ^(www.)?old.com$
RewriteCond %{REQUEST_URI} !^/web/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /web/$1
RewriteCond %{HTTP_HOST} ^(www.)?old.com$
RewriteRule ^(/)?$ web/ [L]
Есть ли у вас что-нибудь еще в файле .htaccess? – MrWhite
Добавил остальную часть содержимого. – KobeBryant
'RewriteOptions inherit' - для чего это? Это означает, что у вас есть директивы mod_rewrite в родительском файле конфигурации, которые необходимы - так что это также может быть источником конфликта? Возможно, лучше разместить ваши .htaccess файлы (ы) целиком, с новыми директивами на месте. (Порядок директив важен.) Нет директивы 'RewriteEngine', так что вы опубликовали не полностью. – MrWhite