【问题标题】:.htaccess exception makes issue on main directory.htaccess 异常在主目录上产生问题
【发布时间】:2015-02-15 03:31:09
【问题描述】:

这是我的目录结构

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

我怎样才能让这两者成为可能?

【问题讨论】:

    标签: php regex .htaccess laravel


    【解决方案1】:

    你可以试试:

    <IfModule mod_rewrite.c>
        RewriteEngine On 
        RewriteBase /
    
        RewriteCond %{THE_REQUEST} /(code|tmp) [NC]
        RewriteRule ^ - [L]
    
        RewriteRule ^((?!public/).*)$ public/$1 [L,NC]
    </IfModule>
    

    【讨论】:

    • 我可以访问代码、tmp 文件夹,但是当我输入 localhost/ 时,我只是列出了目录,我的意思是 /public 规则不适用
    • 不,我的意思是说我不能使用localhost/blog,它给出了localhost/public/blog的用法
    • 但是localhost/public/blog 可以工作,而localhost/blog 不能工作,这是我的问题:(
    • 是的,就是这样,我没有任何其他代码或任何其他 .htaccess inpublic
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多