Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex htaccess问题重写页(带参数)_Regex_.htaccess_Mod Rewrite - Fatal编程技术网

Regex htaccess问题重写页(带参数)

Regex htaccess问题重写页(带参数),regex,.htaccess,mod-rewrite,Regex,.htaccess,Mod Rewrite,我有两个URL,一个带有类别,一个带有产品ID 类别URL 附件/一类/第二类/第三类/第四类 产品URL 附件/1234/此处为产品名称 当我尝试打开产品url时,它会转到类别 #Accessories page RewriteRule ^accessories/?([a-z-]+)?/?([a-z-]+)?/?([a-z-]+)?/?([a-z-]+)?/? accessories.php?cat1=$1&cat2=$2&cat3=$3&cat4=$4 [L,QSA]

我有两个URL,一个带有类别,一个带有产品ID

类别URL

附件/一类/第二类/第三类/第四类

产品URL


附件/1234/此处为产品名称

当我尝试打开产品url时,它会转到类别

#Accessories page
RewriteRule ^accessories/?([a-z-]+)?/?([a-z-]+)?/?([a-z-]+)?/?([a-z-]+)?/? accessories.php?cat1=$1&cat2=$2&cat3=$3&cat4=$4 [L,QSA]
RewriteRule ^accessories/([0-9]+)/[a-z-]+/?$ accessories.product.php?productId=$1 [L,QSA]
编辑: 我改变了重写规则,打印出GET变量,现在我得到了这个

Array
(
    [cat1] => 
    [cat2] => 
    [cat3] => 
    [cat4] => 
    [productId] => 24015
)

停留在类别页面

您只需要反转规则,因为第一个规则与您的产品url相匹配(由于您的可选参数,它与附件相匹配)

现在应该是这样

RewriteRule ^accessories/([0-9]+)/[a-z-]+/?$ accessories.product.php?productId=$1 [L,QSA]
RewriteRule ^accessories/?([a-z-]+)?/?([a-z-]+)?/?([a-z-]+)?/?([a-z-]+)?/?$ accessories.php?cat1=$1&cat2=$2&cat3=$3&cat4=$4 [L,QSA]

您试图访问的url是什么?附件/1234/此处的产品名称我指的是您的
真实的
url(我猜您没有尝试使用
此处的产品名称
),我在您的代码中发现了一个错误。您可以使用我编辑的答案重试