.htaccess, чтобы запретить доступ к большинству XML-файлов

Недавно я взломал сайт Joomla, поэтому я пытаюсь немного укрепить его. В рекомендованном.htaccess есть раздел, который ограничивает внешний доступ к XML-файлам, которые поставляются с расширениями. Тем не менее, он также предотвращает доступ к моему файлу sitemap.xml.

Как мне разрешить определенный файл, оставляя остальные?

вот код по умолчанию:

<Files ~ "\.xml$">
 Order allow,deny
 Deny from all
 Satisfy all
</Files>

и моя модификация, которая вызвала ошибку 500:

<Files ~ "(?!sitemap)\.xml$">
 Order allow,deny
 Deny from all
 Satisfy all
</Files>

3 ответа

Решение

Строка FilesMatch имеет дополнительную "<". Так должно быть:

<FilesMatch "(?!sitemap)\.xml$">

Вы должны использовать <FilesMatch> как задокументировано здесь

Кроме того, я думаю, что ваше регулярное выражение должно быть (?<!sitemap)\.xml$ вместо. Как это:

<FilesMatch "(?<!sitemap)\.xml$">
   Order allow,deny
   Deny from all
</FilesMatch>

Я наконец решил не связываться с регулярным выражением.

Я добавил:

<Files ~  "sitemap\.xml$">
  Order allow,deny
  Allow from all  
</Files>

потом, и это работает как шарм.

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