【问题标题】:Cakephp: Remove /app/webroot on index with .htaccessCakephp:使用 .htaccess 删除索引上的 /app/webroot
【发布时间】:2015-08-03 01:38:53
【问题描述】:

我的 .htaccess 文件在配置上有一个小问题:

问题说明:

  • cakephp 文档根目录位于我的域指向的根目录中:www.example.com
  • 当我访问 www.example.com 时,它会重定向到 www.example.com/app/webroot
  • 当我浏览更深的目录时一切正常,例如:www.example.com/Controller/action 的 url 上不会有 app/webroot。

我的 .htaccess:

根:

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteBase /
   RewriteRule    ^$ app/webroot    [L]
   RewriteRule    (.*) app/webroot/$1 [L]

</IfModule>

/应用程序:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule    ^$    webroot/    [L]
    RewriteRule    (.*) webroot/$1    [L]
</IfModule>

/app/webroot

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

【问题讨论】:

    标签: apache .htaccess cakephp


    【解决方案1】:

    offical docs 中提供的示例的唯一区别是RewriteBase 指令的位置。

    所以,我建议尝试以下(未经测试):

    • root/.htaccess

      • 删除RewriteBase /

        <IfModule mod_rewrite.c>
           RewriteEngine on
           RewriteRule    ^$ app/webroot/     [L]
           RewriteRule    (.*) app/webroot/$1 [L]
        </IfModule>
        
    • app/webroot/.htaccess

      • 在此处添加 RewriteBase 指令并调整到您的文件夹

        <IfModule mod_rewrite.c>
            RewriteEngine On
        
            RewriteBase /path/to/cake/app
        
            # exclude dirs and files
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteCond %{REQUEST_FILENAME} !-f
        
            # prevent invalid assets from being parsed by CakePHP
            RewriteCond %{REQUEST_URI} !^/(webroot/)?(img|css|js)/(.*)$
        
            RewriteRule ^ index.php [L]
        </IfModule>
        

    我认为 Cake2 使用 QueryStringAppend (QSA) 作为 index.php 的 RewriteRule。 那么最后一条规则将是RewriteRule ^(.*)$ index.php [QSA,L],但这取决于您的 Cake 版本。

    旁注:启用Rewrite Logging for Apache。这有助于调试重写规则。不要忘记再次关闭它。

    RewriteLogLevel 3
    RewriteLog "/var/apache/logs/rewrite.log
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-29
      • 2012-08-16
      相关资源
      最近更新 更多