Вы уверены, что хотите это сделать? Даже CSS и JS файлы и изображения и ...?
ОК, сначала проверьте, установлен ли mod_access в apache, затем добавьте в ваш .htaccess следующее:
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
<Files /index.php>
Order Allow,Deny
Allow from all
</Files>
Первая директива запрещает доступ к любым файлам, кроме как с localhost, поскольку Order Deny,Allow
, позже разрешается применение Allow, вторая директива влияет только на index.php
Предупреждение: после запятой в строке заказа не должно быть пробелов.
Чтобы разрешить доступ к файлам, соответствующим * .css или * .js, используйте эту директиву:
<FilesMatch ".*\.(css|js)$">
Order Allow,Deny
Allow from all
</FilesMatch>
Вы не можете использовать директивы для <Location>
или <Directory>
внутри файлов .htaccess.
Вы могли бы использовать <FilesMatch ".*\.php$">
вокруг первого разрешения, запретить группу и затем явно разрешить доступ к index.php.
Обновление для Apache 2.4:
Этот ответ правильный для Apache 2.2. В Apache 2.4 парадигма контроля доступа изменилась, и правильный синтаксис должен использовать Require all denied
.