Как перенаправить с переменным сегментом пути? - PullRequest
0 голосов
/ 08 октября 2018

Я потратил несколько минут, чтобы попытаться решить эту проблему, но не могу.

Я хотел бы создать правило перенаправления, которое перенаправляет:

https://www.example.com/membres/XXX/participations/

Кому:

https://www.example.com

Каким бы ни было значение XXX, если URL имеет одинаковый шаблон (начинается с "membres" и заканчивается "участия").

Это код, который я написал ранее, но онне сработало, пожалуйста, объясните мне, что не так:

RewriteRule ^membres/(.*)/participations/$ /

1 Ответ

0 голосов
/ 04 июня 2019
RewriteRule ^membres/(.*)/participations/$ /

Предполагая, что эта директива находится в верхней части вашего файла конфигурации, и при условии, что вы также включили флаг R (redirect) для запуска внешнего перенаправления и, возможно, включили L (last) для предотвращения более поздних директив (если таковые имеются) от перезаписи URL, тогда эта директива должна была перенаправить пример URL, указанный в вашем вопросе.

Если вы опустите флаг R, то он сработает внутренняя перезапись .Внешнее перенаправление не произойдет.

Единственное реальное отличие от директивы, предложенной в комментариях, состоит в том, что она делает завершающий слеш необязательным.Таким образом, если бы это позволило перенаправлению работать, это означало бы, что запрошенный URL-адрес не содержал завершающий слеш.

Захват обратной ссылки (т. Е. (.*)) не требуется.И вам следует рассмотреть возможность сделать этот шаблон более ограничительным, чтобы соответствовать только одному сегменту пути, а не что-нибудь ?

Если у вас нет других директив mod_rewrite в вашем .htaccess, тогда вы должны рассмотреть возможность использованиявместо этого директива mod_alias RedirectMatch, которая, возможно, более эффективна:

RedirectMatch ^/membres/.*/participations/?$ /
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...