2013-08-06 2 views
0

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

RewriteEngine On 
RewriteBase/
DirectorySlash Off 
RewriteRule ^(.*)\/$ /page.php?page=$1 [L] 
RewriteRule ^news/(.*)\/$ /news/article.php?id=$1 [L] 

, и я хочу, чтобы удалить/в конце URL; это дало бы что-то подобное (см пересесть на двух последних строках):

RewriteEngine On 
RewriteBase/
DirectorySlash Off 
RewriteRule ^(.*)\$ /page.php?page=$1 [L] 
RewriteRule ^news/(.*)\$ /news/article.php?id=$1 [L] 

Но если я оставлю это так, когда я пытаюсь достигнуть файла, например, www.domain.com/register вместо www.domain.com/register/, он бросает мне ошибку 404.

ответ

0

Вы ищете этого простого заявления:

(\/{0,1}) 

Он говорит: "Там может быть либо один / или нулевой / - как это хорошо ". При применении двух последних строк, весь результат должен выглядеть следующим образом, я предполагаю:

RewriteRule ^(.*)\$ /page.php?page=$1(\/{0,1}) [L] 
RewriteRule ^news/(.*)\$ /news/article.php?id=$1 [L] 

В случае, если он по-прежнему не будет работать правильно, попробуйте добавить (\/{0,1}) к концу последней строки, а также.

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