如何修复htaccess中的RewriteRule来支持url而不用斜杠(/)?

时间:2013-02-13 20:24:27

标签: php apache .htaccess mod-rewrite friendly-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/效果很好。

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

2 个答案:

答案 0 :(得分:3)

添加?

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

答案 1 :(得分:0)

为了保持一致,最好强行削减斜线:

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

基本上,如果URL不是文件(!-f),那么它将执行以下规则:如果它有一个尾部斜杠,那么就去你想去的地方,如果它没有t使用尾部斜杠重定向到相同的URL,我认为,这将重复规则并转到您想要的位置。