перенаправление порта .htaccess с помощью Apache
-
19-09-2019 - |
Вопрос
Я бы хотел перенаправить http://www.mydomain.com/service
Для http://www.mydomain.com:PORT
где PORT
является портом сервиса, который будет обслуживать страницы.
Возможно ли это, учитывая, что это apache, который прослушивает порт
80
итак, который выполнит перенаправление, и это несвязанный сервис, который прослушиваетPORT
?Каков синтаксис?Я пробовал такие вещи, как:
RewriteRule ^service$ http://www.mydomain.com:PORT
но я получаю только
500
внутренняя ошибка сервера.
Спасибо за помощь.
Редактировать:
Как предположил Винко, в журнале ошибок есть какая-то полезная строка:
[alert] [client 192.168.1.4] /path/to/the/site/root/.htaccess:
Invalid command 'Option', perhaps misspelled or defined by a module not
included in the server configuration
Который исходил из строки:
Option +FollowSymlinks
Теперь это работает, но...адрес меняется, и я бы хотел, чтобы этого не происходило.Я бы хотел иметь такое же поведение, как при классическом перенаправлении, где изменение адреса прозрачно (например mydomain.com/service > mydomain.com/?var=service
).
Решение
Ошибка 500 указывает на то, что mod_rewrite не включен.Проверьте журнал ошибок, чтобы проверить теорию, и, если она верна, загрузите модуль в вашей конфигурации.
Если неверно, отредактируйте вопрос с указанием ошибки в журнале.Каждой ошибке 500 соответствует строка в журнале ошибок.
Другие советы
Вам нужно добавить перенаправление в конце директивы:
RewriteRule ^service$ http://www.mydomain.com:PORT [R]
Однако поиграйте с регулярным выражением, чтобы заставить его работать.:)