Как перенаправить один маршрут из домена в другое место в apache

У меня есть то, что, судя по моим поискам, похоже, немного отличается от обычной проблемы с перенаправлением сайтов. Мне нужно перенаправить один конкретный маршрут из одного домена в другой через другой порт.

До сих пор я пробовал простое перенаправление 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

без добавления порта (по крайней мере, я думаю, что происходит ).

Есть идеи, как мне это делать? Возможно ли это вообще?

0
задан 8 April 2019 в 07:51
1 ответ

Вы можете использовать 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 !

0
ответ дан 24 November 2019 в 00:23

Теги

Похожие вопросы