2012-10-08 65 views
1

這裏是我的.htaccess:Apache的mod_rewrite的忽略時間和多餘的斜線

Options +FollowSymLinks 
RewriteEngine On 

RewriteRule ^[0-9]+(/)?$ /hello.php [R=301] 

本地主機/ 123重定向預期爲localhost/hello.php。

但是: localhost/123 ....和localhost //// 123 ////也重定向到localhost/hello.php。

這是怎麼回事?

回答

0

我無法重現與期間的問題。但是,對於斜槓,如果它們沒有創建分層結構,那麼Apache的行爲就好像只有一個斜線。所以////123///變成/123/。 (見Stack Overflow - Why is Apache removing multiple slashes)。我建議您將重寫更改爲以下內容,因爲您無需捕獲斜槓以供重用。

RewriteRule ^[0-9]+/?$ /hello.php [L,R=301] 

如果你決定要消除拖尾斜線都在一起,這裏有這種可能性,以及:

RewriteRule ^[0-9]+$ /hello.php [L,R=301]