Я получаю некоторые проблемы с htaccess в моем новом проекте php. Я не мог найти никаких решений, поэтому я прошу здесь, надеюсь, что кто-то поможет мне.
1. Что мне нужно :
В корне URL-адреса, указывающие на существующие файлы и папки, недоступны, кроме / Public / и всех его папок и файлов (только для доступа / Public /). Urls, указывающие на файлы и папки, которые не существуют, будут перенаправлены на root index.php . / Public / также перенаправляется на root index.php , папки и файлы внутри него не являются (прямым доступом).
2. То, что я пробовал и не работаю:
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_URI} !^/Public RewriteCond %{REQUEST_FILENAME} !^index\.php$ RewriteCond %{REQUEST_FILENAME} -f RewriteCond %{REQUEST_FILENAME} -d RewriteRule . - [F,L,NC] RewriteBase /Public/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L,QSA] </IfModule> ------------------------------------ <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_URI} !^/Public RewriteRule . - [F,L,NC] RewriteBase /Public/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L,QSA] </IfModule> ------------------------------------ <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} -f RewriteCond %{REQUEST_FILENAME} -d RewriteRule . - [F,L,NC] RewriteBase /Public/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L,QSA] </IfModule>
Заранее спасибо 🙂
Попробуйте этот код в корневом каталоге .htaccess:
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule !^public /index.php [L,NC]