【问题标题】:htaccess, a shortened url should not match a filehtaccess,缩短的 url 不应匹配文件
【发布时间】:2010-07-16 23:57:13
【问题描述】:

我的 apache2 和 .htaccess 规则有点问题。

例如:
我有一个缩短的 uri,比如

www.domain.tld/sitemap  

必须由重写器重写,在 php 文件中重定向以显示站点地图。 问题是,在根文件夹中存在一个名为 sitemap.xml 的文件。 我的 apache 自动调用 sitemap.xml 文件,但我不希望这样。 仅当 uri 为

时才应调用该文件
www.domain.tld/sitemap.xml

是否有可能在调用缩短的 URI 时避免调用此文件?

这只是一个例子。有些文件需要在根文件夹中,并且不能从那里移动到子文件夹中(这将是解决此问题的最简单方法,但在我的情况下这是不可能的)。要求这些文件可以被 uri 调用。

有人知道如何解决这个问题吗?

我当前的 .htaccess 文件

RewriteCond %{REQUEST_URI} ^(.*)$
RewriteCond %{REQUEST_FILENAME} !index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /index.php?urlseg=%1&%{QUERY_STRING} [NC,L]

非常感谢!

【问题讨论】:

    标签: .htaccess url-rewriting apache2 url-shortener


    【解决方案1】:

    您可能启用了MultiViews,它会将您不存在的资源/sitemap 自动解析为现有资源/sitemap.xml。特别是在您使用mod_rewrite 的情况下,我真的认为不需要MultiViews,因此您可以通过将其添加到.htaccess 文件的顶部来关闭它:

    Options -MultiViews
    

    这样做应该有望防止这种情况发生。

    【讨论】:

      猜你喜欢
      • 2015-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多