应用了RewriteRule
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
答案 0 :(得分:1)
/$1/
与第一个匹配
RewriteRule ^pc/([^/]*)/?$ /pc/$1/basic/ [NC,R=301]
规则,因为您有可选的*
和/?
模式,因此/pc/
将匹配该正则表达式。改为将这些字段设为 required 字段:
#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]
将*
更改为+
。