php – .htaccess异常会在主目录上产生问题

这是我的目录结构

localhost or livehost
-app
-bootstrap
-public
-vendor
-code
-demo

这是我的.htaccess

<IfModule mod_rewrite.c>
    RewriteEngine On 
    RewriteRule ^(.*)$public/$1 [L]
    RewriteRule ^(.*)$public/blog/$1 [L]
</IfModule>

这是我的路线

Route::get('/', 'Sys@Home');
Route::get('blog', 'Sys@Blog');
Route::get('contact', 'Sys@Contact');

要访问这些,我不想输入我的网址

localhost/public/
localhost/public/blog
localhost/public/contact

相反,它足以进入

localhost
localhost/blog
localhost/contact

同时,它不应该适用于文件夹/代码和/ demo来访问目录.

所以我从这个问题.htaccess exception to particular folders中为这些目录编写了异常

<IfModule mod_rewrite.c>
    RewriteEngine On 
    RewriteRule %{THE_REQUEST} /code
    RewriteRule %{THE_REQUEST} /temp
    RewriteRule ^ - [L]
    RewriteRule ^(.*)$public/$1 [L]
    RewriteRule ^(.*)$public/blog/$1 [L]
</IfModule>

应用此之后,我可以访问文件夹localhost / code和

localhost/demo

但我无法访问像这样的文件夹

localhost
localhost/blog
localhost/contact

我怎样才能使它成为可能?

最佳答案 你可以试试:

<IfModule mod_rewrite.c>
    RewriteEngine On 
    RewriteBase /

    RewriteCond %{THE_REQUEST} /(code|tmp) [NC]
    RewriteRule ^ - [L]

    RewriteRule ^((?!public/).*)$public/$1 [L,NC]
</IfModule>
点赞