2013-09-16 3 views
0

Я хочу, по выбору, указать строку (asdf) и удалить ее из перезаписи.Nginx Regex и необязательная обратная связь

location ~ /somefolder { 
    rewrite ^/somefolder(.*)(?:asdf)?(.*html)$ http://example.com$1$2 permanent; 
} 

Так это будет переписать требуемый URL для корневого домена, а также лишить URL любого возникновения asdf если таковой имеется.

Ниже адреса mydomain.com/somefolder/pencil.html переписывается mydomain.com/pencil.html

2013/09/16 09:52:24 [notice] 16866#0: *1 "^/somefolder(.*)(?:asdf)?(.*html)$" matches "/somefolder/pencil.html", client: 10.0.0.2, server: mydomain.com, request: "GET /somefolder/pencil.html HTTP/1.1", host: "mydomain.com" 
2013/09/16 09:52:24 [notice] 16866#0: *1 rewritten redirect: "http://mydomain.com/pencil.html", client: 10.0.0.2, server: mydomain.com, request: "GET /somefolder/pencil.html HTTP/1.1", host: "mydomain.com" 

Где, как здесь mydomain.com/somefolder/pencil-asdf.html переписывается mydomain.com/pencil-asdf.html

2013/09/16 09:52:31 [notice] 16866#0: *1 "^/somefolder(.*)(?:asdf)?(.*html)$" matches "/somefolder/pencil-asdf.html", client: 10.0.0.2, server: mydomain.com, request: "GET /somefolder/pencil-asdf.html HTTP/1.1", host: "mydomain.com" 
2013/09/16 09:52:31 [notice] 16866#0: *1 rewritten redirect: "http://mydomain.com/pencil-asdf.html", client: 10.0.0.2, server: mydomain.com, request: "GET /somefolder/pencil-asdf.html HTTP/1.1", host: "mydomain.com" 

Если не asdf получать раздели с помощью (?:asdf) матча дающую mydomain.com/pencil-.html

+1

Вы должны добавить ответ на свой вопрос и принять его - это упростит для людей, чтобы решить, что есть решение, если у них такая же проблема. –

ответ

0

Я разработал решение, так что я просто использую обратные refs $ 1 и $ 3, игнорируя $ 2, соответствует ли оно или null.

rewrite ^/somefolder(.*)(asdf)(.*html)$ http://example.com$1$3 permanent; 

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

  • Нет связанных вопросов^_^