我在新的php项目中遇到了htaccess的麻烦。我无法找到任何解决方案,所以我在这里问,希望有人能帮助我。
1。我需要的是:
在root上,指向现有文件和文件夹的URL无法访问,除了/ Public /及其所有文件夹和文件(仅允许/ Public /访问)。指向不存在的文件和文件夹的网址将重定向到 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>
提前谢谢你:)
答案 0 :(得分:1)
在root .htaccess中尝试此代码:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !^public /index.php [L,NC]