URL Regex - удалить косую черту из имени файла и конца URL? - PullRequest
1 голос
/ 05 февраля 2011

Итак, у меня проблема с регулярным выражением, и я подумал, может ли кто-нибудь мне помочь?

Если пользователь заходит на http://example.com/index.php/, как я могу изменить / добавить свое регулярное выражение, чтобы предотвратить косую черту в конце?

также

В настоящее время у меня есть страница с именем post.php, к которой можно получить доступ, например: http://example.com/reviews/reviewTitle/ и http://example.com/news/newsTitle/

Опять же, как я могу предотвратить эту косую черту?

Ниже приведено регулярное выражение:

RewriteEngine on
RewriteRule ^reviews/([^/\.]+)/?$ reviews/post.php?title=$1 [L]
RewriteRule ^news/([^/\.]+)/?$ news/post.php?title=$1 [L]
RewriteRule ^page/(.*) index.php?page=$1

Примечание: я также переписываю http://example.com/index.php?page=1 в http://example.com/page/1 и т. Д., Тот же вопрос, как я могу предотвратить косую черту?

Большое спасибо, я очень ценю любую помощь:)

1 Ответ

1 голос
/ 05 февраля 2011

Попробуйте добавить это правило после RewriteEngine on

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$    $1  [R=301]
RewriteRule ^reviews/([^/\.]+)$ reviews/post.php?title=$1 [L]
RewriteRule ^news/([^/\.]+)$ news/post.php?title=$1 [L]
RewriteRule ^page/(.*) index.php?page=$1

Отредактировано для отображения полного набора правил

Отредактировано 2-й раз Добавлено в

RewriteCond %{REQUEST_FILENAME} !-d

над новым правилом, которое разрешает доступ к каталогам, не вызывая бесконечный цикл перенаправления

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...