Переписать правило для определенного домена без определенного каталога
У нас есть несколько магазинов на нашем сервере, и сейчас мы пытаемся перевести один магазин в автономный режим, но по-прежнему разрешаем ему доступ к бэкэнду.
RewriteCond %{HTTP_HOST} ^(www\.)olddomain\.de$ [NC]
RewriteCond %{HTTP_HOST} !^(www\.)olddomain\.de\/backend\/$ [NC]
RewriteRule .* http://www.newdomain.de [L,R=301]
Но мы все еще перенаправлены на www.newdomain.de, когда пытаемся получить доступ к www.olddomain.de/backend/. Как мы можем установить это, не устанавливая rewriterule для каждого магазина.
Спасибо за помощь.
1 ответ
Решение
- Строка 1 всегда www.olddomain.de, а не olddomain.de с или без www.
- Строка 2 - это не заголовок HTTP_HOST, это URI.
- Строка 3 не передает URL на новый домен
Попробуйте изменить это на
RewriteCond %{HTTP_HOST} ^(www\.)?olddomain\.de$ [NC]
RewriteCond %{REQUEST_URI} !^/backend/ [NC]
RewriteRule (.*) http://www.newdomain.de/$1 [L,R=301]
Так что сейчас читает
Если хостом является либо www.olddomain.de, либо olddomain.de, а запрошенный URI не начинается с /backend, за которым, возможно, следуют дополнительные сведения URI, переписать хост из olddomain.de в www.newdomain.de и передать запрошенный URI для www.newdomain.de