.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>
потом, и это работает как шарм.