我想重写以下网址:
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/
效果很好。
¿我能做些什么来解决这个问题?
答案 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,我认为,这将重复规则并转到您想要的位置。