0

我有这个工作代码,

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。

4

1 回答 1

0

您正在寻找这个简单的陈述:

(\/{0,1})

它说“可以是 1/或 0 /- 两者都可以”。当应用最后两行时,我认为整个结果应该如下所示:

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

如果它仍然无法正常工作,请尝试添加(\/{0,1})到最后一行的末尾。

于 2013-08-07T18:24:29.443 回答