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