Подтвердить что ты не робот

Скрыть папки с .htaccess

Можно ли скрыть папки в корневой папке? На всякий случай мой index.php исчезнет, ​​вы знаете?

Могу ли я также показать ошибку 404 не найден, если кто-то просит их?

4b9b3361

Ответ 1

IndexIgnore *

Вышеупомянутое предотвратит перечисление всех файлов. Здесь * действует как подстановочный знак. Вы можете заменить его чем-то более конкретным, если это необходимо.

Ответ 2

Вероятно, вы хотите

Options -Indexes

который просто даст ошибку 404, если файл DirectoryIndex не найден.

Ответ 3

Как упоминалось duskwuff, вам нужно

Options - Indexes

Это приведет к 403 запрещенной ошибке в этом конкретном каталоге. Таким образом, для создания настраиваемой страницы ошибок вам понадобится

ErrorDocument   403 myErrorPage.html

Надеюсь, что это поможет

Ответ 4

Это было мое предпочтительное решение для той же проблемы (это отображает Access Denied вместо 404):

<files "/path/to/single/file/or/folder">
  order allow,deny
  deny from all
</files>

Это также дает вам возможность предоставить доступ к определенному IP (в этом случае он запрещает доступ ко всем)

"/path/to/single/file/or/folder" можно заменить регулярным выражением, если вы хотите использовать шаблон. В противном случае вам придется использовать несколько блоков для каждого конкретного файла или папки, для которых вы хотите заблокировать доступ.

Ответ 5

Если вы действительно хотите показать ошибку 404 для вложенных папок (-ов), попробуйте следующее в /.htaccess:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [R=404,L]

Если запрашивается существующее /folder или /subfolder, указанное выше правило переписывает его на /404.

Ответ 6

Я обойду это, добавив index.html во все папки, которые мне не нужны. Страница index.html содержит одну строку со следующим header("Location:thepageiwanttoshown.html"). Таким образом, если пользователь случайно посещает ограниченные папки, они будут перенаправлены "на лету". Я надеюсь, что это поможет

Ответ 7

В моем случае я сделал это, но он показывает ошибку 500. Это мой .htaccess

RewriteEngine on

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

Options - Indexes

Спасибо

Ответ 8

Для меня он всегда работает с добавлением

<Directory "/var/www/yourfolder"> IndexIgnore * </Directory>

в файл/etc/apache2/sites-available/default

Ответ 9

Я использовал этот код:

В вашем основном корне .htaccess поместите текущий код:

RewriteEngine on
RewriteRule ^dfjgekbjvrskzcnfvberidurvf/?(.*)$    /folder1/$1 [L]


Then at .htaccess file in folder1 directory put this :

RewriteEngine on
RewriteCond %{THE_REQUEST} !dfjgekbjvrskzcnfvberidurvf
RewriteRule ^    - [F,L]