Перезапись порта .htaccess для субдоменов

Я пытаюсь перенаправить все ПОДДОМЕНЫ, кроме portal.example.com, с любого порта (обычно это 80 или 443) на порт 30000.

например

  • example.com: (любой порт) не должен иметь изменений
  • www.example.com: (любой порт) без изменений
  • portal.example.com (любой порт) не должен изменяться
  • a.example.com (любой порт) должен быть обновлен до a.example.com:30000
  • b.example.com (любой порт) должен быть обновлен до b.example.com:30000
  • *.example.com (любой порт) должен быть обновлен до *.example.com:30000
  • и т. д.

В настоящее время у меня есть следующие .htaccess, направляющие example.com и *.example.com без изменений:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
2
0
115
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Не могли бы вы попробовать следующее, написанное в соответствии с показанными вами образцами. Убедитесь, что вы очистили кеш браузера перед тестированием URL-адресов.

RewriteEngine ON
RewriteCond !^example\.com [NC]
RewriteCond !^www\.example\.com [NC]
RewriteCond !^portal\.example\.com [NC]
RewriteCond (.*example\.com) [NC]
RewriteCond %{SERVER_PORT} !^30000$
RewriteRule ^(.*)$ http://%{HTTP_HOST}:30000%{REQUEST_URI} [R=301,NE,L]
Ответ принят как подходящий

Немного изменено правило:

RewriteEngine On

RewriteCond %{SERVER_PORT} !=30000
RewriteCond !^((?:www|portal)\.)?example\.com [NC]
RewriteRule ^ http://%{HTTP_HOST}:30000%{REQUEST_URI} [R=301,NE,L]

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