Вопрос

Я бы хотел перенаправить http://www.mydomain.com/service Для http://www.mydomain.com:PORT где PORT является портом сервиса, который будет обслуживать страницы.

  1. Возможно ли это, учитывая, что это apache, который прослушивает порт 80 итак, который выполнит перенаправление, и это несвязанный сервис, который прослушивает PORT?

  2. Каков синтаксис?Я пробовал такие вещи, как:

    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]

Однако поиграйте с регулярным выражением, чтобы заставить его работать.:)

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