Можно ли скрыть папки в корневой папке? На всякий случай мой index.php исчезнет, вы знаете?
Могу ли я также показать ошибку 404 не найден, если кто-то просит их?
Можно ли скрыть папки в корневой папке? На всякий случай мой index.php исчезнет, вы знаете?
Могу ли я также показать ошибку 404 не найден, если кто-то просит их?
IndexIgnore *
Вышеупомянутое предотвратит перечисление всех файлов. Здесь *
действует как подстановочный знак. Вы можете заменить его чем-то более конкретным, если это необходимо.
Вероятно, вы хотите
Options -Indexes
который просто даст ошибку 404, если файл DirectoryIndex не найден.
Как упоминалось duskwuff, вам нужно
Options - Indexes
Это приведет к 403 запрещенной ошибке в этом конкретном каталоге. Таким образом, для создания настраиваемой страницы ошибок вам понадобится
ErrorDocument 403 myErrorPage.html
Надеюсь, что это поможет
Это было мое предпочтительное решение для той же проблемы (это отображает Access Denied вместо 404):
<files "/path/to/single/file/or/folder">
order allow,deny
deny from all
</files>
Это также дает вам возможность предоставить доступ к определенному IP (в этом случае он запрещает доступ ко всем)
"/path/to/single/file/or/folder" можно заменить регулярным выражением, если вы хотите использовать шаблон. В противном случае вам придется использовать несколько блоков для каждого конкретного файла или папки, для которых вы хотите заблокировать доступ.
Если вы действительно хотите показать ошибку 404 для вложенных папок (-ов), попробуйте следующее в /.htaccess
:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [R=404,L]
Если запрашивается существующее /folder
или /subfolder
, указанное выше правило переписывает его на /404
.
Я обойду это, добавив index.html во все папки, которые мне не нужны. Страница index.html содержит одну строку со следующим header("Location:thepageiwanttoshown.html")
. Таким образом, если пользователь случайно посещает ограниченные папки, они будут перенаправлены "на лету". Я надеюсь, что это поможет
В моем случае я сделал это, но он показывает ошибку 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
Спасибо
Для меня он всегда работает с добавлением
<Directory "/var/www/yourfolder"> IndexIgnore * </Directory>
в файл/etc/apache2/sites-available/default
Я использовал этот код:
В вашем основном корне .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]