2017-01-04 3 views
1

Следующая RewriteRule будет соответствовать:RewriteRule не соответствует, если есть нет/

http://example/test/article/1 

, а также

http://example/test/article/ 

Но не так:

http://example/test/article (если есть недостающий косой чертой в конце URL-адреса)

Если нет / после article, тогда я получаю Внутренняя ошибка сервера.

Правило:

RewriteRule ^([^\.]+)/article/ $1-article.php?id=$2 [NC,L] 

Как я могу изменить выше RewriteRule, чтобы соответствовать, даже если нет слэш после article.

ответ

0

Использование:

RewriteRule ^([^\.]+)/article/? $1-article.php?id=$2 [NC,L] 
+0

Даже если в этом правиле '$ 2' пусто ... Это потому, что основное правило не является правильным – Croises

+0

Спасибо. В идеале url должен иметь некоторый идентификатор после косой черты (например, статья2), поэтому $ 2 должен получить этот идентификатор, правильно? если не будет идентификатора, тогда он может отображать некоторую ошибку или перенаправить. – naseer

+0

В этом случае используйте: 'RewriteRule^([^ \.] +)/Article (?:/(. *) /?)? $ $ 1-article.php? Id = $ 2 [NC, L]' – Croises

Смежные вопросы