2013-02-13 29 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,我認爲它會再次重複規則,然後去哪裏你打算。

相關問題