2009-10-08 52 views
2

我在做一個網站,我目前正在對許多的URL重寫痛苦,但我注意到一個小問題:的.htaccess相同的URL帶或不帶/

RewriteRule ^domains/transfer$ ./cart.php?gid=11 [L,NC] 

這與導航路線,如果我請訪問:

http://my-site/domains/transfer 

但它不會有拖尾工作/:

http://my-site/domains/transfer/ 

有沒有一種方法,我可以改變RewriteCode採取EIT她的論點並進入同一頁面。看起來浪費兩次相同的行包括'/'

任何幫助,將不勝感激。

乾杯

回答

3

行更改爲這樣:

RewriteRule ^domains/transfer/?$ ./cart.php?gid=11 [L,NC] 

神奇的是這裏:/?和允許前面的字符,在這種情況下,斜線(/),是可選的。

如果您想在transfer之後出現某些內容,請刪除標記允許匹配結束的美元符號($)。

+0

真棒。完美的作品。非常感謝。 – frodosghost 2009-10-08 05:45:30

0

我會建議你只允許一個URL的形式,在一個有或沒有結尾的斜線,並重定向如果畸形的:

# remove trailing slash 
RewriteRule (.*)/$ /$1 [L,R=301] 

# add trailing slash 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule .*[^/]$ /$0/ [L,R=301] 
+0

是否有允許一個而不是另一個的理由?這是一個程序問題,還是更正確的問題? – frodosghost 2009-10-08 21:52:05

+0

@frodosghost:這是一個正確性問題。每個資源應該只有一個有效的URL。 – Gumbo 2009-10-08 22:34:13

+0

@Gumbo ::謝謝。實施。 – frodosghost 2009-10-09 01:09:29