У меня уникальная ситуация, я думаю, гугл мне мало что говорит.
Я хочу иметь возможность иметь гиперссылку в html, чтобы просто перейти по адресу: http: //: 8081 http: //: 8080
Когда сама страница работает на 80-м порту.
Обычно это было бы легко, однако это разрабатывается как виртуальное устройство для автономной работы на машинах наших отделов продаж, и поэтому IP-адрес всегда будет отличаться в зависимости от машины, на которой он работает. Я тоже не могу использовать для этого DNS.
Afaik, невозможно иметь относительную гиперссылку для ссылки на другой порт. Затем я подумал, что могу просто создать ссылку на «./site1» и «./site2», а затем использовать mod_rewrite для записи этих ссылок на правильный порт.
Кто-нибудь знает как это сделать? Я пошел и застрял, когда понял, что хочу переписать URL-адрес на статический IP-адрес, чего я не могу! (Правила перезаписи apache или nginx или любое другое решение приветствуются!)
Спасибо за ответ pjz, оказалось, что меня немного смутило ServerName, так как я думал, что это зависит от DNS.
Я сделал следующее:
<VirtualHost _default_:80>
ServerName offlinewebdemo
RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /site1\ HTTP/ [NC]
RewriteRule ^.*site1$ http://%{SERVER_NAME}:8081/ [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /site2\ HTTP/ [NC]
RewriteRule ^.*site2$ http://%{SERVER_NAME}:8080/ [R=301,L]
И это сработало :-) Затем я установил относительные ссылки в html. Теперь я могу правильно щелкать ссылки, без DNS или статического IP-адреса.
Используйте имя хоста, которое запросчик страницы запросил для страницы, и добавьте к нему порт. В CGI это SERVER_NAME, но детали будут зависеть от того, что выполняет перезапись.