У меня есть то, что, судя по моим поискам, похоже, немного отличается от обычной проблемы с перенаправлением сайтов. Мне нужно перенаправить один конкретный маршрут из одного домена в другой через другой порт.
До сих пор я пробовал простое перенаправление 301 и перезапись, но безрезультатно.
Код выглядит как
<VirtualHost *:80>
ServerName blah.hardsoft.nexus.blah2.blah3.au/phpmyadmin
RewriteEngine on
RedirectMatch "^blah.*nexus.*\/phpmyadmin$" "http://10.1.140.1:8080/phpmyadmin"
#RedirectMatch ".*nexus.*" "http://10.1.140.1:8080/phpmyadmin"
#Redirect 301 / http://10.1.140.1:8080/phpmyadmin
</VirtualHost>
<VirtualHost 10.1.140.1:8080>
ServerName phpmyadmin
DocumentRoot /var/www-8080
</VirtualHost>
Как вы можете см. Я пробовал пару совпадений перенаправления (одно очень широкое) и перенаправление 301, но во всех случаях я получаю перенаправление на
10.1.140.1/phpmyadmin
без добавления порта (по крайней мере, я думаю, что происходит ).
Есть идеи, как мне это делать? Возможно ли это вообще?
Вы можете использовать mod_rewrite
для перенаправления с номером порта.
Сначала включите mod_rewrite
на своем сервере ( a2enmod rewrite
), затем добавьте это в свою конфигурацию:
RewriteEngine on
RewriteRule "^/phpmyadmin(.*)$" "http://10.1.140.1:8080/phpmyadmin$1" [L,R=301,NE]
Я думаю, URL-адрес для перенаправления начинается с «/ phpadmin», поэтому Я использовал "^" в регулярном выражении. Если это не так, измените правило соответствующим образом.
Используемые флаги:
[L]
- последнее правило, дальнейшая обработка не выполняется
[R = 301]
- перенаправление постоянное
[NE]
- без кодировки специальных символов
Затем перезапустите сервер и проверьте.
РЕДАКТИРОВАТЬ:
Только что увидел, что у вас есть RewriteEngine на
в вашей конфигурации, поэтому mod_rewrite
, вероятно, уже включен. Обратите внимание, что вам нужен только mod_alias
для перенаправления
или RedirectMatch
!