htaccess перенаправляет весь трафик с определенного домена на другой домен, исключая папку и тип файла [дубликат]

Несколько псевдонимов доменов, указывающих на одну и ту же учетную запись cPanel, используют один и тот же файл .htaccess . Мне нужно правило для домена, которое перенаправляет весь трафик с aliasdomain.com на https://www.domain1.com , только если:

  • HTTP_HOST в настоящее время aliasdomain.com (с или без WWW и http / https)

  • исключить папку / medias / - он должен быть доступен с aliasdomain.com

  • исключить все * .jpg , *. Jpeg , *. Png и *. Gif файлы (даже если файлы находятся в корне aliasdomain.com )

  • всегда перенаправлять на https://www.domain1.com root, без подстановочного перенаправления и без перенаправления на не-ssl http

  • domain1.com необходимо исключить, поэтому, если тот же файл .htaccess находится на domain1.com , он не будет мешать.

Я пытался адаптировать различные фрагменты кода, найденные на StackOverflow, но ужасно не смог заставить его работать :( Я задал вопрос там, но моды сказали мне вместо этого спросить на ServerFault, так что вот я ... Помощь будет очень признательна!

0
задан 20 April 2017 в 14:21
1 ответ

Попробуйте следующее:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?aliasdomain\.com [NC]
RewriteCond %{REQUEST_URI} !\.(jpe?g|png|gif)$ [NC]
RewriteRule !^medias https://www.domain1.com/ [R=302,L]

Шаблон RewriteRule гарантирует, что правило обрабатывается только тогда, когда не запрашивает URL-адреса, начинающиеся с / medias . (Префикс ! отменяет регулярное выражение в Apache mod_rewrite.)

Первая директива RewriteCond проверяет, что запрашиваемым хостом является только aliasdomain.com (с или без поддомена www ). (Таким образом, domain1.com естественно исключен.)

Вторая директива RewriteCond исключает запросы на файлы изображений.

Измените 302 (временно ) перенаправление на 301 (постоянное), если оно должно быть постоянным и только после того, как вы убедитесь, что все работает нормально (поскольку 301-е жестко кэшируются браузером).

Очистите кеш браузера перед тестированием, поскольку любые предыдущие / ошибочные 301, вероятно, были кэшированы. (Или протестируйте с открытыми инструментами браузера и отключенным кешем.)

Я задал там вопрос, но моды сказали мне вместо этого задать serverfault

Если честно, этот вопрос, вероятно, лучше подходит для стека Pro Webmasters , а не ServerFault! (Хотя это не обязательно не по теме в StatckOverflow, пример кода, который вы пробовали, является обязательным.)

1
ответ дан 4 December 2019 в 16:17

Теги

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