Назад | Перейти на главную страницу

.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>

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

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

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

В строке FilesMatch есть дополнительный знак «<». Так должно быть:

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

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

Я добавил:

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

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