【问题标题】:.htaccess rewrite rule conflict.htaccess 重写规则冲突
【发布时间】:2012-06-09 23:10:42
【问题描述】:

请用 ReWriteRule 帮助我...我的问题是我有一个链接,我必须清理甚至成功,但是当我为另一个链接应用相同的 ReWriteRule 时,数据不显示.. 例如:

链接 1:localhost:8080/domain/index.php?subj=about_us 为此我写了这条规则.. RewriteRule ^(.*).html/?$ index.php?subj=$1 [NC,L]

链接 2:localhost:8080/domain/brands_content.php?brand=about_brand 为此我写了这条规则.. RewriteRule ^(.*).html/?$brands_content.php?brand=$1 [NC,L]

第一个链接规则是完美的,我得到了干净的链接,但是对于第二个链接,规则不起作用,页面加载但没有内容....

等待您的回复......

【问题讨论】:

    标签: .htaccess mod-rewrite url-rewriting


    【解决方案1】:

    (根据我们在 cmets 中的交流,第二次修改答案)

    首先,不要使用 L 标志,因为您告诉 Apache 这是“最后一个”规则,它将停止处理。

    其次,我在这里理解你的目标仍然有点困难。直到/除非你能更好地描述你的实际目标,恐怕我无能为力。这里有几个选项,也许你可以选择一个?

    选项一:

    您希望用户单击 src 为“index.php?subj=about_us”的导航链接,并让他们转到该页面,但让 URL 栏显示“about_us.html”。

    选项二:

    您希望用户单击 src 为“index.php?subj=about_us”的导航链接,并让他们转到实际页面“about_us.html”,但仍然说“index.php?subj=about_us”在网址栏中。

    选项三:

    您希望用户单击 src 为“about_us.html”的导航链接,但让他们转到实际页面“index.php?subj=about_us”并在网址栏。

    选项四:

    您希望用户单击 src 为“index.php?subj=about_us”的导航链接,但让他们转到实际页面“about_us.html”并在 URL 栏中查看“about_us.html”。

    如果您能告诉我其中哪一个最接近您的目标,我会再尝试帮助您。 :)

    【讨论】:

    • 嗨,谢谢你的回复,顺便说一下,我是这个重写的新手......正如你所说,我从我的 .htaccess 文件中删除了 $1,问题仍然存在......我觉得有某种循环正在进行,因为如果我评论第一条规则,那么第二条规则对我来说就像魅力一样......有什么想法吗??
    • 嗯,实际上,我以前没有注意到...但是您在第一条规则上犯了同样的错误!在那里做同样的改变。 :)
    • 好的,现在我按照您所说的进行了更改,现在第一条规则是:RewriteRule ^(.*)\.html/?$ index.php?subj= [NC,L] 和第二条规则是: RewriteRule ^(.*)\.html/?$brands_content.php?brand= [NC,L] 现在两者都不起作用.....我不知道我在这里缺少什么......!顺便把网站暂时上传了....链接如下:www.naqqah.com/cavalos
    • 嗯。我可能进一步误读了您的初始帖子(假设您没有编辑),因为以前我认为您正在检查特定的传入文件名,但现在初始帖子中的规则和您的最后一次跟进显示了一个通用的、冗余的重定向。您的初始帖子现在显示 RewriteRule ^(.*).html/?$ 用于两个重写规则,这意味着永远不会达到第二个规则,因为第一个规则将处理所有传入的 .html 请求并重定向它们......当然无论如何,第二条规则被忽略是没有用的,因为它与第一条规则相匹配。我会尽快修改我的答案。
    • 嗨,戴夫,对不起,我正忙于将网站恢复到没有前缀 (.html) 的原始链接...
    猜你喜欢
    • 2021-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多