2014-01-16 87 views
1
404頁

應用了重寫規則htaccess的條件重定向

RewriteRule ^([^/]*)/([^/]*)/basic/?$ /basic.php?player=$2&platform=$1 [NC] 

轉換

/basic.php?player=$2&platform=$1 

網址漂亮

/$1/$2/basic 

然後應用

RewriteRule ^pc/([^/]*)/?$ /pc/$1/basic/ [NC,R=301] 

重定向這個

/$1/$2 

這個

/$1/$2/basic 

問題進入僅此

/$1 

它顯示未找到404錯誤頁面,但是當進入

/$1/ 

它重定向到

/$1/basic/basic 

有沒有什麼辦法來顯示一個404 Not Found錯誤頁面,而不是

,這裏是我的.htaccess

<IfModule mod_rewrite.c> 
Options -Indexes 
RewriteEngine on 

#redirect -- /platform/player/ => /platform/player/basic 
RewriteRule ^pc/([^/]*)/?$ /pc/$1/basic/ [NC,R=301] 
RewriteRule ^ps3/([^/]*)/?$ /ps3/$1/basic/ [NC,R=301] 
RewriteRule ^ps4/([^/]*)/?$ /ps4/$1/basic/ [NC,R=301] 
RewriteRule ^xbox/([^/]*)/?$ /xbox/$1/basic/ [NC,R=301] 
RewriteRule ^xone/([^/]*)/?$ /xone/$1/basic/ [NC,R=301] 

#format -- /platform/player/page 
RewriteRule ^([^/]*)/([^/]*)/basic/?$ /basic.php?player=$2&platform=$1 [NC] 
RewriteRule ^([^/]*)/([^/]*)/weapons/?$ /weapons.php?player=$2&platform=$1 [NC] 
RewriteRule ^([^/]*)/([^/]*)/vehicles/?$ /vehicles.php?player=$2&platform=$1 [NC] 
RewriteRule ^([^/]*)/([^/]*)/awards/?$ /awards.php?player=$2&platform=$1 [NC] 
RewriteRule ^([^/]*)/([^/]*)/kititems/?$ /kititems.php?player=$2&platform=$1 [NC] 

ErrorDocument 400 /errordoc/error.php?error=400 
ErrorDocument 401 /errordoc/error.php?error=401 
ErrorDocument 403 /errordoc/error.php?error=403 
ErrorDocument 404 /errordoc/error.php?error=404 
ErrorDocument 500 /errordoc/error.php?error=500 

回答

1

/$1/是匹配第一

RewriteRule ^pc/([^/]*)/?$ /pc/$1/basic/ [NC,R=301] 

規則,因爲你有可選*/?模式,所以/pc/將匹配該正則表達式。讓這些領域需要區域,而不是:

#redirect -- /platform/player/ => /platform/player/basic 
RewriteRule ^pc/([^/]+)/?$ /pc/$1/basic/ [NC,R=301] 
RewriteRule ^ps3/([^/]+)/?$ /ps3/$1/basic/ [NC,R=301] 
RewriteRule ^ps4/([^/]+)/?$ /ps4/$1/basic/ [NC,R=301] 
RewriteRule ^xbox/([^/]+)/?$ /xbox/$1/basic/ [NC,R=301] 
RewriteRule ^xone/([^/]+)/?$ /xone/$1/basic/ [NC,R=301] 

通過改變*+

+0

謝謝你的工作 –