.htaccess - сделать каталог невидимым - PullRequest
0 голосов
/ 10 октября 2011

У меня есть файл .htaccess, который в настоящее время выглядит следующим образом:

<Files .htaccess>
    order allow,deny
    deny from all
</Files>

Options All -Indexes
IndexIgnore *

# Respond to /include/ with 404 instead of 403
RewriteEngine On
RedirectMatch 404 ^/include(/?|/.*)$

Я пытаюсь помешать всем узнать, что / include / существует, однако я столкнулся с проблемой.

Хотя посещение http://www.example.com/include дает 404, браузер добавляет конечную косую черту (таким образом, давая http://www.example.com/include/), которая показывает, что каталог на самом деле существует, но замаскирован. Когда фактический 404посещение, косая черта не добавляется.

Есть ли способ предотвратить такое поведение?

Ответы [ 2 ]

3 голосов
/ 10 октября 2011

1. Вы можете использовать DirectorySlash Off, чтобы указать Apache не добавлять завершающий слеш в конце каталогов.

2. Зачем использовать RewriteEngine On если вы не используете движок перезаписи (на основе предоставленного вами кода)?RedirectMatch не имеет ничего общего с mod_rewrite.

3. Если вы хотите использовать mod_rewrite , попробуйте это правило - оно вернет 404код для папки /include (с косой чертой и без нее), а также ЛЮБОГО ресурса в этом файле (например, /include/main.php и т. д.).

RewriteEngine On

RewriteRule ^include(/|/.+)?$ - [R=404,L]
0 голосов
/ 10 октября 2011

Используйте правило перезаписи в дополнение к RedirectMatch.

...