2010-10-09 83 views
0

RewriteRule ^user/(.*)/(.*) profile.php?user=$1&v=$2 [L]作品http://10.0.1.5/user/Kevin/wall/的.htaccess配置文件重寫幫助

。 如果我這樣做http://10.0.1.5/user/Kevin/它404的 如果我這樣做http://10.0.1.5/user/Kevin它404的

我累

RewriteRule ^user/(.*) profile.php?user=$1 [L] 
    RewriteRule ^user/(.*) profile.php?user=$1 [L] 
    RewriteRule ^user/(.*)/(.*)/ profile.php?user=$1&v=$2 [L] 
    RewriteRule ^user/(.*)/(.*) profile.php?user=$1&v=$2 [L] 

但它沒有工作像我想要的。我希望它能與所有4個可能的網址一起工作。我該怎麼辦?

回答

1

使用比.*更具體的圖案像[^/]+和使用/?$使尾隨斜線可選:

RewriteRule ^user/([^/]+)/?$ profile.php?user=$1 [L] 
RewriteRule ^user/([^/]+)/([^/]+)/?$ profile.php?user=$1&v=$2 [L] 

但正如我建議只使用其中一種格式(帶或不帶斜線),刪除或者添加尾部斜線(如果存在或丟失):

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

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

如果網站混合使用這兩個網站,真的很重要嗎? – Keverw 2010-10-09 08:05:21

+0

@Keverw:不,你可以使用任何你想要的URL。但我只會使用一致的方案。 – Gumbo 2010-10-09 08:07:48

+0

好的。感謝您的幫助! – Keverw 2010-10-09 08:08:58