htaccess,缩短的网址不应与文件匹配

时间:2010-07-16 23:57:14

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

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

例如:
我有一个简短的uri喜欢

www.domain.tld/sitemap  

必须由rewriterule重写,重定向到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]

非常感谢!

1 个答案:

答案 0 :(得分:0)

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

Options -MultiViews

这样做应该可以防止这种情况发生。