gpt4 book ai didi

php - htaccess 重写规则冲突

转载 作者:行者123 更新时间:2023-11-29 14:50:25 26 4
gpt4 key购买 nike

这里有一个真正的脑筋急转弯。一切正常,直到我到达mysite.com/index.php?page=XXX&parent_url=XXX&child_url=XXX然后我得到这个错误

警告:include(browse/12-oclock-bars/cbr-600-f4i.php) [function.include]: 无法打开流:/home/leb/public_html/index.php 中没有此类文件或目录在第 167 行

警告:include() [function.include]:无法打开“browse/12-oclock-bars/cbr-600-f4i.php”以进行包含(include_path='.:/usr/lib/php')/home/leb/public_html/index.php 第 167 行

但是前两行工作正常。为什么第三行不适用于我的网站。但是如果我注释掉前两行,那么第三行就可以了......我很困惑。

这是我的 HTACCESS 文件。任何帮助将不胜感激。

RewriteCond %{HTTP_HOST} ^mysite.com [NC] 
RewriteRule ^(.*)$ http://www.mysite.com/$1 [L,R=301]


RewriteCond %{REQUEST_URI} !^index.php?
RewriteRule ^(.*)/$ /index.php?page=$1 [L,NC]
RewriteRule ^(.*)/(.*)/$ /index.php?page=$1&parent_url=$2 [L,NC]
RewriteRule ^(.*)/(.*)/(.*)/$ /index.php?page=$1&parent_url=$2&child_url=$3 [L,NC]
<小时/>

--------------------------------------------------------已修改以下新问题

在这里,第 3 行不起作用,但其他所有行都起作用,如果我向上或向下改变它的位置,其他行将停止工作。

RewriteRule ^(.*)/(.*)/(.*)/(.*)/$ /index.php?page=$1&parent_url=$2&child_url=$3product=$4 [L,NC]
RewriteRule ^(.*)/(.*)/(.*)/$ /index.php?page=$1&parent_url=$2&child_url=$3 [L,NC]
RewriteRule ^(.*)/(.*)/(.*)/$ /index.php?page=$1&parent_url=$2&product=$3 [L,NC] <---
RewriteRule ^(.*)/(.*)/$ /index.php?page=$1&parent_url=$2 [L,NC]
RewriteRule ^(.*)/$ /index.php?page=$1 [L,NC]

最佳答案

正如 @jeroen 所评论的,规则 2 和规则 3 的传入 URL 没有区别。尽管它们应该访问的预期页面不同,但您在两个规则中检查的传入 URL 仍然是 /a/b/c。如果 URL 中有一些指示符,例如规则 3,即产品:

 RewriteRule ^product/(.*)/(.*)/$ /index.php?page=product&parent_url=$2&product=$3 [L,NC]

随着这一更改,按照您目前的规则,该规则必须出现在您当前的第二条规则之前。

此外,当匹配这样的部分时,我发现使用 ([^\/]*) 而不是 (.*) 更容易。这样,该组就会匹配 / 之前的所有内容,并且您会注意到对规则顺序的依赖减少了。

希望这有帮助。

关于php - htaccess 重写规则冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5860560/

26 4 0
文章推荐: javascript - 获取引用错误 : setInterval is not defined
文章推荐: php - 当用户从 CakePHP 的下拉列表中选择时,在表单中填充
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com