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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.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
.htaccess,带有用户友好URL的变量_.htaccess - Fatal编程技术网

.htaccess,带有用户友好URL的变量

.htaccess,带有用户友好URL的变量,.htaccess,.htaccess,我得到了以下两个URL: /组合/冲压混凝土 /p_details.php?id_cat=23和?id=91 我想将第二个url重写为: /公文包/印花混凝土/23/91 stamped_concrete是一个动态url,这就是为什么我不知道如何解决这个问题。另外,如果需要的话,portfolio.php和p_details.php两个文件位于同一目录中 我将如何做到这一点 编辑: stamped_concrete也是一个变量字符串,我以前重写过,它可以工作: RewriteRule ^serv

我得到了以下两个URL:

/组合/冲压混凝土

/p_details.php?id_cat=23和?id=91

我想将第二个url重写为: /公文包/印花混凝土/23/91

stamped_concrete是一个动态url,这就是为什么我不知道如何解决这个问题。另外,如果需要的话,portfolio.php和p_details.php两个文件位于同一目录中

我将如何做到这一点

编辑:

stamped_concrete也是一个变量字符串,我以前重写过,它可以工作:

RewriteRule ^services/([a-z0-9_-]+)$    /services.php?url=$1    [NC,L,QSA]
那么,在规则范围内,我该如何称呼它呢

这条路对吗

RewriteCond %{QUERY_STRING} url=([a-z0-9_-]+)
RewriteCond %{QUERY_STRING} id_cat=([0-9]+)
RewriteCond %{QUERY_STRING} id=([0-9]+)
RewriteRule /p_details.php?.* /portfolio/$1/$2/$3
试试这个:

RewriteCond %{QUERY_STRING} id_cat=([0-9]+)
RewriteCond %{QUERY_STRING} id=([0-9]+)
RewriteRule /p_details.php?.* /portfolio/stamped_concrete/$1/$2
可能需要稍微调整一下-不确定重写规则部分是否正确抱歉

但是,重要的部分是查询字符串,请参阅apache文档:

还有,从

我总是混淆反向参考,所以试试看,是她的美元符号或百分比符号,我真的以为是美元符号

引述

使查询字符串成为路径的一部分

获取表单的URL并将其转换为。请注意,此特定示例仅适用于仅包含字母、数字和下划线字符的单个var=val对

RewriteCond %{QUERY_STRING} ^(\w+)=(\w+)$
RewriteRule ^/path /path/%1/%2?
结束报价


因此,您可能只需要说RewriteRule^/p_details.php/portfolio/%1/%2/%3

只是一条注释-您的查询字符串中有一个额外的问号,我想这篇文章可能是打字错误-确保只有一个q标记将所有get变量与URI的其余部分分开。没必要在符号后面加一个,我想。另外,您能提供一个示例请求URI吗?最好能看到最初请求的路径。我不知道你说的动态URL是什么意思。。。如果你能解释一下的话。您可以将URL重写规则链接在一起,但必须小心,不要无限重写URL apache通常会检测到这一点,这样您就不会挂起进程,从而正确重写URL。但是是的,我认为这是正确的!谢谢你的帮助。在尝试了几种方法之后,这对我很有效:RewriteRule^portfolio/?[^/]*/?[^/]*/?[^/]*/?[^/]*/?[^/]*/p_details.php?id_cat=$2&id=$3[QSA,NC,L]