【问题标题】:RewriteRule match root dir?RewriteRule 匹配根目录?
【发布时间】:2018-08-13 07:44:52
【问题描述】:

对于用于匹配根目录请求的确切正则表达式,SO 中的现有答案似乎存在一些历史性混淆。例如: ^/$ 、 ^$ 或 ^/?$

查看答案herehere。 所以,让我们澄清一下

问题:

目前有效的“2018 年”方式将请求匹配到根目录?

单例测试(使用 chrome)

我确实运行了一个快速测试,似乎(至少使用 chrome)总是匹配 ^$,无论 url 是如何输入的,包括 /?test。最后一点让我觉得服务器配置也很重要。

RewriteRule ^/$ /index-with-slash.html [L,R=301,NE] <-- no hits
RewriteRule ^$ /index-wo-slash.html [L,R=301,NE] 

【问题讨论】:

  • 为了匹配htaccess上下文中的根目录,我们使用^$^/$用于server.config或虚拟主机上下文。
  • 回复并解释范围的差异,如果有的话,你会得到答案;)

标签: .htaccess mod-rewrite apache2.4


【解决方案1】:

^/?$ 将匹配这两种情况。无需重新发明轮子。

如果您担心正则表达式会占用大量资源,那么您可能无论如何都不会使用 Apache。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-22
    • 2013-07-15
    • 1970-01-01
    • 2012-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-07
    相关资源
    最近更新 更多