Do you have to escape a forward slash when using mod_rewrite?

With regards to the forward slash "/" when giving a regex to RewriteRule or RewriteCond, or anything else related to .htaccess in particular, is there a need to escape the forward slash?

Here is an example of what I am trying to achieve

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]

The above works fine, and it continues to work fine when I remove the backslashes as shown below

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]

Which one is the correct way? Are they both wrong? Есть ли какая-то особая причина, по которой передняя косая черта должна быть экранирована или нет?

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

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

20
задан Makoto 9 September 2015 в 15:52
поделиться

1 ответ

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

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

20
ответ дан 30 November 2019 в 01:10
поделиться
Другие вопросы по тегам:

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