Как исправить проблему с .htaccess mod_rewrite и косой чертой - PullRequest
1 голос
/ 12 февраля 2012

Я использую .htaccess mod_rewrite для более хороших URL.

Вот часть моего файла .htaccess, который превращает /artist.php?id=123456 в /artist/123456, /artists.php?culture=arabic в /artists/arabic и удаляет .php:

RewriteRule ^artist/([0-9]+) artist.php?id=$1
RewriteRule ^artists/(.+) artists.php?culture=$1
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^([^\.]+)$ $1.php [NC,L] 

Это работает, но если я ставлю конечную косую черту / в конце, как /artist/arabic/, это выдает ошибку 404. Как я могу это исправить? Простое удаление косой черты, вероятно, будет работать, но я не знаю, как это сделать. Я просто не хочу, чтобы пользователь случайно добавил / или что-то еще, а затем запутался, думая, что страница не существует.

Заранее спасибо!

1 Ответ

3 голосов
/ 12 февраля 2012

Вам просто нужно добавить дополнительную косую черту в первое правило с помощью /?

# Optional trailing slash...
RewriteRule ^artist/([0-9]+)/? artist.php?id=$1
#--------------------------^^^^
RewriteRule ^artists/(.+) artists.php?culture=$1
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^([^\.]+)$ $1.php [NC,L] 
...