2015-10-02 2 views
0

я не могу найти способ, чтобы преобразовать этот URL:Nginx правило переписать номера в конце URL

https://domain.com/en/whatever/12345-mylink

к этому

https://domain.com/en/whatever/mylink

Спасибо за помощь мне ,

После этого я пришел с этим решением, но это не сработало: (.) - (. *)

переписан ^/(. )// ([0-9] +) ТСП: //domain.com/$1/$2/$3 постоянный;

Потому что он направляет на это сейчас:

TTPS: //domain.com/12345

Спасибо за вашу помощь

ответ

0

Ваш вопрос немного расплывчато и я не могу сказать, если вы хотите переадресацию, переписать или настроить конфигурацию nginx для/whatever/mylink.

Но, если вы просто хотите, чтобы перенаправить/все/(номера вставки) -mylink на свой собственный сайт, SANS (номера вставки), следующий должен поставить вас на правильном пути:

location ~ "^/en/whatever/([0-9]+)-mylink" { 
    rewrite ^(.*) http://192.168.99.100:8080/en/whatever/mylink; 
} 
location ~ ^/en/whatever/mylink { 
    rewrite ^(.*)$ http://www.yahoo.com; 
} 

I развернули контейнер Docker с nginx. Я изменил файл /etc/nginx/conf.d/default.conf и добавил эти несколько строк. Мой контейнер-докер работал на этом внутреннем IP-адресе, поэтому вы хотите настроить его.

Если вы нажмете/что угодно/(столько чисел, сколько хотите) -малинк, он перепишет его в mylink, который просто отправится на yahoo.

Опять же, ваш вопрос был очень расплывчатым, но я предполагаю, что вы хотите чего-то подобного.

Редактировать: После прочтения ваших комментариев, вам кажется, вам нужно убрать параметры регулярных выражений при повторной записи. Вы можете сделать это через $ 1 для первого, $ 2 для второго и так далее. Вот пример, который, мы надеемся, будет более уместным для вашего случая использования. Опять же это только взлом на default.conf:

location/{ 
    rewrite ^/en/(.*)/(.*)/([0-9]+)-mylink http://192.168.99.100:8080/en/$1/$2/mylink; 
    root /usr/share/nginx/html; 
    index index.html index.htm; 
} 

location ~ ^/en/whatever/whatevs/mylink { 
    rewrite ^(.*)$ http://www.yahoo.com; 
} 

Если вы вращаете это и идти к/ен/все/whatevs/12345-MyLink, вы будете перенаправлены на Yahoo.

+0

Извините за туманность в моем вопросе и за вашу помощь. Мне нужна постоянная переадресация на эти ссылки. Проблема в том, что/en/whatever/subfolders могут быть названы по-разному. Не знаю, объясняю ли я себя, но/en/whatever/may/es/cosa/или многие другие регулярные выражения. Таким образом, «mylink» может быть любым другим словом. Вы можете помочь ? Благодарю. – tictocman

+0

Отредактировал мой ответ, чтобы показать, как фиксировать значения регулярных выражений с помощью $ 1, $ 2 и т. Д. – bbuckley123

Смежные вопросы