Ответ 1
Нет, вам не нужно скрывать косые черты. Прямые косые черты не имеют особого значения в регулярных выражениях.
Один общий символ, который укусил меня в прошлом, ?
в строках запроса. Это вам нужно убежать.
Что касается прямой косой черты "/" при предоставлении регулярного выражения 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]
Какой из них правильный? Они оба ошибаются? Есть ли какая-либо особая причина, по которой следует избегать прямой косой черты, или не должен?
Я предполагаю, что передняя косая черта не должна быть экранирована, поскольку, насколько мне известно, она не является особым персонажем. Но я просто хочу быть уверенным.
Если вам интересно указать на этот код, он перенаправляет город, графство и регион (с или без косой черты) на их множественные эквиваленты. Кроме того, если множественное число имеет косую черту, оно удаляет косую черту.
Нет, вам не нужно скрывать косые черты. Прямые косые черты не имеют особого значения в регулярных выражениях.
Один общий символ, который укусил меня в прошлом, ?
в строках запроса. Это вам нужно убежать.
Вам нужно избегать обратной косой черты, но если вы используете косую черту, вам не нужно, по крайней мере, в файле конфигурации my.ini(MySQL).