У меня есть два приложения на одном сервере и я использую правила перезаписи apache для перенаправления:
Все работает нормально, кроме одного случая:
запрос www.test2.test.eu перенаправляется на https://www.test1.com содержание
Как мне его правильно настроить?
Перезаписывает в конфигурационный файл домена test1.com:
ServerName test1.com
RewriteCond% {HTTP_HOST} ^ www.test1.com $ [NC]
RewriteRule ^ (. *) $ https://www.test1.com/1 доллар США [R = 301]
RewriteCond% {SERVER_PORT}! ^ 443 $
RewriteRule ^. * $ Https: //% {SERVER_NAME}% {REQUEST_URI}
Переписывает в конфигурационный файл домена test2.test.eu:
Имя сервера test2.test.eu
RewriteCond% {HTTP_HOST} ^ www.test2.test.eu $ [NC]
RewriteRule ^ (. *) $ https://www.test2.test.eu/1 доллар США [R = 301]
RewriteCond% {SERVER_PORT}! ^ 443 $
RewriteRule ^. * $ Https: //% {SERVER_NAME}% {REQUEST_URI}
Любые предложения очень ценятся.
С уважением.
Я думаю, что ваша первая конфигурация vritualhost действует по умолчанию для любого запроса на хостах, не соответствующих 'test1.com' и 'test2.test.eu'. Попробуйте добавить эту строку ServerAlias, чтобы увидеть, поступает ли запрос в соответствующий файл конфигурации.
Изменяет конфигурационный файл домена test2.test.eu:
ServerName test2.test.eu
ServerAlias www.test2.test.eu *.test2.test.eu
RewriteCond %{HTTP_HOST} ^www.test2.test.eu$ [NC]
RewriteRule ^(.*)$ https://www.test2.test.eu/$1 [R=301]
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ https:// %{SERVER_NAME}%{REQUEST_URI}
Это явно указывает apache, что запросы к «www.test2.test.eu» должны обрабатываться этой конфигурацией. Вторая запись в ServerAlias со звездочкой предоставляет подстановочный знак, так что даже если запрос приходит для «wwww.test2.test.eu» или «xxx.test2.test.eu», правильная конфигурация apache будет обрабатывать его. Используя подстановочный знак, вы можете опустить первую запись, например:
ServerName test2.test.eu
ServerAlias *.test2.test.eu
RewriteCond %{HTTP_HOST} ^www.test2.test.eu$ [NC]
RewriteRule ^(.*)$ https://www.test2.test.eu/$1 [R=301]
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ https:// %{SERVER_NAME}%{REQUEST_URI}
и он должен работать так же, хотя ваша первая перезапись в любом случае не поймает имена хостов, отличные от «www».