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
Надеемся, что это должно предотвратить это.