Php htacces-重写为url
我在一个简单的php网站上工作,这个网站有两个子网站:leasing.php和article.php。Php htacces-重写为url,php,apache,.htaccess,mod-rewrite,Php,Apache,.htaccess,Mod Rewrite,我在一个简单的php网站上工作,这个网站有两个子网站:leasing.php和article.php。 我想让用户看到这样的子网站: (show leasing.php)-这很好用 (show article.php?alias=$variable)-这不是 my.htacces文件: RewriteEngine on RewriteRule ^(/$|$) index.php [NC,L] RewriteRule ^leasing leasing.php [NC,L] RewriteRule
我想让用户看到这样的子网站:
(show leasing.php)-这很好用
(show article.php?alias=$variable)-这不是 my.htacces文件:
RewriteEngine on
RewriteRule ^(/$|$) index.php [NC,L]
RewriteRule ^leasing leasing.php [NC,L]
RewriteRule ^leasing/([A-Za-z0-9-]+)/?$ article.php?alias=$1 [NC,L]
如何更改重写规则以在浏览器中查看article.php页面?试试看
RewriteEngine on
RewriteRule ^leasing$ leasing.php [NC,END]
RewriteRule ^leasing/(.*)/?$ article.php?alias=$1 [NC,END]
您遇到了麻烦,因为您的两条规则都由路径/leasing/article name
匹配,而且url重写是在先到先得的基础上进行的,解析器甚至从未查看过您的最后一条规则
修复方法是修改第一条规则,使其尽管与/leasing
匹配,但不再与/leasing/article name
匹配。最简单的方法是在租赁后立即用$
结束模式。在此之后继续的任何路径将不再匹配第一条规则
我用的旗子和你的稍有不同。你有L
,我用END
。差别很小,但基本上,如果您知道这是此路径(最终目的地)所需的最后一次重写,请使用END
试试看
RewriteEngine on
RewriteRule ^leasing$ leasing.php [NC,END]
RewriteRule ^leasing/(.*)/?$ article.php?alias=$1 [NC,END]
您遇到了麻烦,因为您的两条规则都由路径/leasing/article name
匹配,而且url重写是在先到先得的基础上进行的,解析器甚至从未查看过您的最后一条规则
修复方法是修改第一条规则,使其尽管与/leasing
匹配,但不再与/leasing/article name
匹配。最简单的方法是在租赁后立即用$
结束模式。在此之后继续的任何路径将不再匹配第一条规则
我用的旗子和你的稍有不同。你有
L
,我用END
。差别很小,但基本上,如果您知道这是此路径(最终目的地)所需的最后一次重写,请使用END
看看leasing.php的rewirte规则:
RewriteRule ^leasing leasing.php [NC,L]
条件是^leasing
,意思是“一切开始于leasing
”。这也与租赁/商品名称
url匹配
在结束条件表达式(^leasing$
)处添加$
(表示字符串结尾)符号,使其仅与leasing
url完全匹配,而不与其他url完全匹配
RewriteRule ^leasing$ leasing.php [NC,L]
看看leasing.php的rewirte规则:
RewriteRule ^leasing leasing.php [NC,L]
条件是^leasing
,意思是“一切开始于leasing
”。这也与租赁/商品名称
url匹配
在结束条件表达式(^leasing$
)处添加$
(表示字符串结尾)符号,使其仅与leasing
url完全匹配,而不与其他url完全匹配
RewriteRule ^leasing$ leasing.php [NC,L]
虽然这个代码片段可以解决这个问题,但它确实有助于提高文章的质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。还请尽量不要用解释性注释挤满您的代码,因为这会降低代码和解释的可读性!我认为这是多余的,因为@dragoste很好地解释了OP的问题所在,他的答案与我的答案非常接近。也许你是对的。虽然这个代码片段可以解决这个问题,但它确实有助于提高你文章的质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。还请尽量不要用解释性注释挤满您的代码,因为这会降低代码和解释的可读性!我认为这是多余的,因为@dragoste很好地解释了OP的问题所在,他的答案与我的答案非常接近。如果其中一个答案对你有帮助,请选择它(如果你愿意,请向上投票)。研究、测试和写出这些答案需要时间。如果其中一个答案对您有帮助,请选择它(如果您愿意,请向上投票)。研究、测试和写出这些答案需要时间。问和跑不是很酷。