为MVC应用程序添加尾随斜杠

时间:2011-02-10 01:58:19

标签: apache model-view-controller mod-rewrite

我正在构建基于MVC设计模式的应用程序,我希望我的URL可以像:http://example.com/page/action/。我成功地使用了下面的代码,但如果URL没有以斜杠结尾,则应用程序会中断。我一直在搜索,主要是Stack Overflow,但是我没有找到一个适合我的代码的好答案。我试图修改其他人得到的许多答案,但这也没有用。

这是我的最新代码(不包括我尝试的内容):

# Turn on Rewrite Engine
    Options +FollowSymLinks
    RewriteEngine On

    RewriteRule ^(.*) /$1/ [R=301,L]

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)/(.*)/$ ./index.php?p=$1&a=$2 [PT]

我从以下方面得到了一些想法:

Simple MVC mod-rewrite

我是mod_rewrite的新手,但我不明白为什么我不能让代码添加尾部斜杠。看起来很正确。有人可以帮我吗?谢谢!

1 个答案:

答案 0 :(得分:1)

RewriteEngine on

RewriteBase /

RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) $1/ [R=301,L,QSA]