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

时间:2014-12-16 18:07:26

标签: php regex .htaccess laravel

这是我的目录结构

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

同时,它不应适用于文件夹/code/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

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

1 个答案:

答案 0 :(得分:2)

您可以尝试:

<IfModule mod_rewrite.c>
    RewriteEngine On 
    RewriteBase /

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

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