gpt4 book ai didi

php - Mod_Rewrite 规则冲突让我发疯

转载 作者:行者123 更新时间:2023-12-04 05:52:59 27 4
gpt4 key购买 nike

我有一个 .htaccess 如下,有些规则是相互冲突的 - 我需要以某种方式提出一个条件,这样他们就不会

RewriteEngine On
RewriteRule ^search$ results_template.php [L]
RewriteRule ^load-([a-z0-9-]+)$ index.php?key=$1 [L]
RewriteRule ^([a-z0-9-]+)$ http://domain.com/share/index.php?key=$1 [L]

.htaccess 文件位于 http://domain.com/directory/.htaccess

第一条规则应该只是重写名称 searchresults_template.php并停止处理更多规则
http://domain.com/directory/search
负载
http://domain.com/directory/results_template.php
第二条规则应该采用 abcdef-1
http://domain.com/directory/load-abcdef-1
并将其作为参数发送给
http://domain.com/directory/index.php?key=abcdef-1然后停止处理规则。

第三条规则应该采用 abcdef-1
http://domain.com/directory/abcdef-1
并将其作为参数发送给
http://domain.com/share/index.php?key=abcdef-1然后停止处理规则。

我遇到的问题是,无论我如何尝试在我请求时让这些玩得很好 http://domain.com/directory/search第三条规则被调用,我被重定向。

我敢肯定这只是完全的疲倦或完全的愚蠢,但我现在已经在这小步走了太多小时,所以任何帮助都会很好。谢谢

最佳答案

您将需要 RewriteConds:

RewriteEngine On
RewriteBase /directory
RewriteRule ^search$ results_template.php [L]
RewriteRule ^load-([a-z0-9-]+)$ index.php?key=$1 [L]
RewriteCond %{QUERY_STRING} !^results_template.php
RewriteRule ^([a-z0-9-]+)$ http://domain.com/share/index.php?key=$1 [L]

例如用户请求/search,然后查询转换为 results_template.php。使用这个新查询/results_template.php 再次检查所有规则,当然最后一条规则适合,因为它是最通用的。

关于php - Mod_Rewrite 规则冲突让我发疯,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9850338/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com