2013-02-13 26 views
1

我想改写下列网址:如何修复htaccess中的RewriteRule以支持URL最后没有斜线(/)?

http://www.mywebsite.com/helloworld/ 

http://www.mywebsite.com/index.php?page=hellworld 

这下面的规则很适合做的工作:

RewriteRule ^(.*)/$ index.php?page=$1 

,但我有一个问题:

当我去:http://www.mywebsite.com/helloworld(看斜线(/)在结束不存在)该规则不起作用。但使用http://www.mywebsite.com/helloworld/效果很好。

¿我能做些什么来解决这个问题?

回答

3

添加?

RewriteRule ^(.*)/?$ index.php?page=$1 
+0

的?说明字符或字符集合可能会丢失;好工作伙伴 – 2013-02-13 20:29:54

+0

就像一个信息,第一个(。*)站立为1美元,第二个(。*)将停留在2美​​元 – 2013-02-13 20:30:59

0

可能是更好的给力斜线,一致性的缘故:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)/$ index.php?page=$1 
RewriteRule ^(.*)([^/])$ http://%{HTTP_HOST}/$1$2/ [L,R=301] 

基本上,如果该URL不是一个文件(!-f),那么它将请遵循以下规则:如果它有一个结尾的斜线,那么去你想要的地方,如果它没有重定向到具有尾部斜线的同一个URL,我认为它会再次重复规则,然后去哪里你打算。

相关问题