Подтвердить что ты не робот

Вам нужно избегать косой черты при использовании mod_rewrite?

Что касается прямой косой черты "/" при предоставлении регулярного выражения RewriteRule или RewriteCond или что-то еще, связанного с .htaccess, в частности, есть необходимость избежать косой черты?

Вот пример того, чего я пытаюсь достичь

RewriteEngine on
RewriteOptions inherit

RewriteBase /uk-m-directory/
RewriteRule ^(region|region\/|regions\/)$ regions [R=301,L]
RewriteRule ^(county|county\/|counties\/)$ counties [R=301,L]
RewriteRule ^(city|city\/|cities\/)$ cities [R=301,L]

Это работает отлично, и он продолжает работать нормально, когда я удаляю обратную косую черту, как показано ниже.

RewriteEngine on
RewriteOptions inherit

RewriteBase /uk-m-directory/
RewriteRule ^(region|region/|regions/)$ regions [R=301,L]
RewriteRule ^(county|county/|counties/)$ counties [R=301,L]
RewriteRule ^(city|city/|cities/)$ cities [R=301,L]

Какой из них правильный? Они оба ошибаются? Есть ли какая-либо особая причина, по которой следует избегать прямой косой черты, или не должен?

Я предполагаю, что передняя косая черта не должна быть экранирована, поскольку, насколько мне известно, она не является особым персонажем. Но я просто хочу быть уверенным.

Если вам интересно указать на этот код, он перенаправляет город, графство и регион (с или без косой черты) на их множественные эквиваленты. Кроме того, если множественное число имеет косую черту, оно удаляет косую черту.

4b9b3361

Ответ 1

Нет, вам не нужно скрывать косые черты. Прямые косые черты не имеют особого значения в регулярных выражениях.

Один общий символ, который укусил меня в прошлом, ? в строках запроса. Это вам нужно убежать.

Ответ 2

Вам нужно избегать обратной косой черты, но если вы используете косую черту, вам не нужно, по крайней мере, в файле конфигурации my.ini(MySQL).