Исключать определенные вложенные папки и домены при перенаправлениях

StackOverflow https://stackoverflow.com/questions/1732275

Вопрос

Это продолжение из Перенаправлять только HTML-файлы?

Как я могу изменить свой .htaccess чтобы заставить его исключить определенные вложенные папки или поддомены из перенаправления только для HTML?Я попытался использовать этот код, чтобы исключить подпапку "downloads" и поддомены "dev" и "support", но это не сработало:

RewriteCond %{HTTP_HOST} ^pandamonia.us$ [OR]
RewriteCond %{HTTP_HOST} ^www.pandamonia.us$ [OR]
RewriteCond %{HTTP_HOST} !download [OR]
RewriteCond %{HTTP_HOST} !faq
RewriteCond %{HTTP_HOST} !support [OR]
RewriteRule /.+\.html$ "http\:\/\/pandamonia\.us\/" [L]
Это было полезно?

Решение

Вам нужно проверить ЗАПРОС_УРИ или весь матч из RewriteRule $0 для этого; HTTP_HOST содержит только имя хоста текущего запроса.Вам также необходимо изменить логическое выражение вашего состояния:

RewriteCond %{HTTP_HOST} ^pandamonia\.us$ [OR]
RewriteCond %{HTTP_HOST} ^www.pandamonia\.us$
RewriteCond %{REQUEST_URI} !^/download/
RewriteCond %{REQUEST_URI} !^/faq/
RewriteCond %{REQUEST_URI} !^/support/
RewriteRule /.+\.html$ http://pandamonia.us/ [L]

Другие советы

Для тех, кто ищет краткое представление о предыдущем ответе Гумбо (где он упоминает ситуации, когда следует (и не следует) использовать [ИЛИ], Я нашел эту тему WMW очень полезной: http://www.webmasterworld.com/apache/3522649.htm

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top