2016-12-22 5 views
1

Я создал среду apache2 для выполнения веб-приложения PHP.Apache 2 + PHP - Проблема с разрешениями .htaccess

Почти все в порядке.

Это мое приложение структура:

/var/www/html/ 
    - app/: PHP classes directory 
    - views/: PHP templates directory 
    - storage/: database and log stuffs directory 
    - static/: public directory for js, css and images 
    - index.php: Main script 
    - .htaccess 

пыльник файл .htaccess

<IfModule mod_rewrite.c> 
    RewriteEngine On 

    RewriteCond %{REQUEST_FILENAME} -s [OR] 
    RewriteCond %{REQUEST_FILENAME} -l [OR] 
    RewriteCond %{REQUEST_FILENAME} -d 
    RewriteRule ^.*$ - [NC,L] 
    RewriteRule \.(static/)$ - [L] 

    RewriteCond %{REQUEST_URI}::$1 ^(/.+)(.+)::\2$ 
    RewriteRule ^(.*) - [E=BASE:%1] 
    RewriteRule ^(.*)$ %{ENV:BASE}index.php [NC,L] 
</IfModule> 

редирект на index.php работает нормально. Я хотел бы разрешить доступ только к каталогу static/и запретить и перенаправить любые другие запросы на index.php.

Возможно ли это?

ответ

0

Вы можете использовать этот код в ваш .htaccess:

RewriteEngine On 

RewriteRule ^index\.php$ - [L,NC] 

RewriteCond %{THE_REQUEST} !\s/+static/ [NC] 
RewriteRule^index.php [L,NC] 

# remaining rules go here 
+0

Этот пример не решает проблему. =/ Я все еще могу позвонить localhost/app/test.php –

+0

sorry man ... Я был в отпуске =) Когда я попытался получить доступ к app/test.php, он отображает содержимое test.php. Переадресация не работает. –

+0

В папке 'app /' также есть .htaccess? Можете ли вы показать свой полный .htaccess. – anubhava