У меня есть локальный apache httpd, на котором размещена служба mediawiki, которая прослушивает порт 3300. Служба может получить доступ в моей локальной сети через
http://mylan:3300/wiki/
Я настраиваю свой интернет-маршрутизатор, чтобы добавить запись перенаправления портов в mylan: 3300. Затем я могу получить доступ к вики через что-то вроде:
http://<dynamic domain>:3300/wiki/
Далее, у меня есть веб-сайт, который работает по всему миру. Веб-сервер также Apache httpd. Я добавляю правило перезаписи в .htaccess:
RewriteEngine On
RewriteRule ^/?wiki/?$ http://<dynamic domain>:3300/wiki/ [P]
Я хочу получить доступ к вики, которая размещается в моей локальной сети через прокси-метод, но с использованием глобального пространства имен интернет-домена:
http://<internet domain>/wiki/
После выполнения вышеуказанного URL-адреса из интернет-браузера я могу увидеть содержимое вики. Однако URL, отображаемый в адресной строке, изменится на
http://<dynamic domain>:3300/wiki/index.php/Main_Page
Чтобы проверить работу правила перезаписи прокси, я пытаюсь изменить правило перезаписи на:
RewriteRule ^/?wiki/?$ http://www.google.com/search?q=test [P]
Открыть URL:
Http: /// вики /
ведет меня на страницу поиска Google, но URL остается в виде http: ///wiki/.
Любые идеи, почему правило переписывания
RewriteRule ^/?wiki/?$ http://<dynamic domain>:3300/wiki/ [P]
сделать так, чтобы браузер отображал новый URL-адрес вместо пространства имен интернет-домена:
http://<internet domain>/wiki/
Хороший пример:
RewriteRule ^/?wiki/(.*)$ http://en.wikipedia.org/wiki/$1 [P]
Если мы получим доступ к URL:
http://<domain>/wiki/Country
URL всегда будет перезаписан и будет отображаться как
http://en.wikipedia.org/wiki/Country
Вместо этого я ожидаю, что оно будет отображаться как
http://<domain>/wiki/Country
но содержание от http://en.wikipedia.org/wiki/Country