Ви впевнені, що хочете це зробити? Навіть файли та зображення 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
, Дозволити застосовується пізніше, друга директива впливає лише на index.php.
Застереження: після коми в рядку Замовлення не залишається пробілу.
Щоб дозволити доступ до файлів, що відповідають * .css або * .js, використовуйте цю директиву:
<FilesMatch ".*\.(css|js)$">
Order Allow,Deny
Allow from all
</FilesMatch>
Однак ви не можете використовувати директиви для файлів .htaccess <Location>
або <Directory>
всередині них.
Вашим варіантом було б використовувати <FilesMatch ".*\.php$">
першу групу дозволити, заборонити, а потім явно дозволити доступ до index.php.
Оновлення для Apache 2.4:
Ця відповідь правильна для Apache 2.2. В Apache 2.4 парадигма контролю доступу змінилася, і слід використовувати правильний синтаксис Require all denied
.