htaccess, сокращенный URL не должен совпадать с файлом - PullRequest
0 голосов
/ 17 июля 2010

У меня есть небольшая проблема с моими правилами 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 голосов
/ 17 июля 2010

Вероятно, вы включили MultiViews, что автоматически разрешает ваш несуществующий ресурс /sitemap в существующий ресурс /sitemap.xml. Особенно в тех случаях, когда вы используете mod_rewrite, я действительно не вижу необходимости в MultiViews, поэтому вы можете отключить его, добавив его в начало вашего .htaccess файла:

Options -MultiViews

Это, как мы надеемся, должно предотвратить это.

...