【问题标题】:my htaccess rule is not firing for some reason?我的 htaccess 规则由于某种原因没有触发?
【发布时间】:2015-05-07 04:53:53
【问题描述】:

在 Windows 上运行我的 isapi rewrite 3 时遇到问题...由于某种原因,它没有获取以下 URL 并且无法弄清楚原因...

网址:(http://www.domain.com/asdf/xyz)

htaccess 文件

RewriteCond %{HTTP_HOST} .*domain.com [NC]
RewriteRule ^\/asdf\/xyz?$ http://domain.com/apples [L,QSA,R=301]

我在这里错过了什么?我有 ”?”只是以防有人把斜杠放在后面......

谢谢

花旗

【问题讨论】:

    标签: .htaccess iis rewrite


    【解决方案1】:

    您的重写规则不应以/ 开头,否则将无法匹配。 Apache 去除了 .htaccess 中的前置斜杠。此外,为了使尾部斜杠可选,您需要在此处添加斜杠,包括 ?

    RewriteRule ^asdf/xyz/?$ http://domain.com/apples [L,QSA,R=301]
    

    注意:我确实提到了 Apache,尽管看起来您正在使用带有 .htaccess 模块的 IIS。如果兼容,它仍然应该以相同的方式工作。

    【讨论】:

    • 嗯。在测试时能够让这个恢复为真:htaccess.madewithlove.be 但我的实时服务器无法识别这一点。我已经测试过,只需在顶层重定向域,就可以确保重写模块正常工作。有什么想法吗?
    • 那只是一个测试人员。这不是绝对的,它并不总是适用于所有情况。你只需要将它用于基本的东西。它在文档中。 在目录和 htaccess 上下文中,模式最初将与文件系统路径匹配,在删除引导服务器到当前 RewriteRule 的前缀之后(例如,“app1/index.html”或“index.html”,具体取决于位置指令已定义)。 httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriterule
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-13
    • 2021-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多