nginx rewrite url pattern middle of url

Это правило nginx отлично работает для меня для полного указанного пути к файлу

rewrite ^/sitemap.xml$ /sitemap.php last;

Когда я получаю доступ к sitemap.xml, он работает, как ожидалось но в фоновом режиме запрашивается sitemap.php. Пока все хорошо.

Возникла другая проблема, и мне нужно переписать последнюю часть существующих URL

переписать ^ doctor-solution.html / doctor-answer.html / постоянный; Я хочу получить доступ к старому URL-адресу, например https://example.com/case12232-doctor-solution.html/ , он должен быть перенаправлен на

https://example.com/case12232-doctor-answer.html/

Но мое правило не похоже работать. Есть идеи?

Могу я сделать что-то вроде этого, это вызывает ошибку

 rewrite ^/([a-z]+)-doctor-solution.html/$ /{$1}-doctor-answer.html/;
0
задан 27 January 2019 в 00:19
1 ответ

Вы забыли включить цифру в свое регулярное выражение и сделали ошибку при ссылке на соответствующий шаблон, поэтому это $ 1 , а не {$ 1} (см. комментарий Ричарда Симита)

В вашем случае решение

rewrite ^/([a-z0-9]+)-doctor-solution.html/$ /$1-doctor-answer.html/ redirect;

Дополнительная документация по https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#rewrite

0
ответ дан 5 December 2019 в 04:19

Теги

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