Переписать правило для определенного домена без определенного каталога

У нас есть несколько магазинов на нашем сервере, и сейчас мы пытаемся перевести один магазин в автономный режим, но по-прежнему разрешаем ему доступ к бэкэнду.

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

Другие вопросы по тегам