htaccess, сокращенный URL не должен совпадать с файлом

У меня есть небольшая проблема с моими правилами apache2 и.htaccess.

например:
У меня как ури укороченный

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 ответ

Решение

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

Options -MultiViews

Надеемся, что это должно предотвратить это.

Другие вопросы по тегам