3

我想将我的 CakePHP 应用程序从本地主机部署到网络服务器,但我得到了Error 500.

我的文件夹结构看起来像这样(注意:Cake-app 不在根目录中......)。-files (0) - (3)是根据.htaccess这篇文章 [SO]:的,因为这是一个 CakePHP&Wordpress 服务器,我也在这里尝试了这个建议 [SO]。该应用程序显然位于子域指向的-Folder中。CAKEAPPcakeapp.mydomain.com

ROOT
├── .htaccess (0)
├── CAKEAPP
│   ├── .htaccess (1)
│   ├── app
│   │   ├── .htaccess (2)
│   │   ├── WEBROOT
│   │   │   ├── .htaccess (3)
├──{wordpress-files}

(0)ROOT文件夹中的 .htaccess

    Action php /cgi-php52/php
AddHandler php52 .php
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

php_value memory_limit "128M"

#BEGIN Image Upload HTTP Error Fix
<IfModule mod_security.c>
<Files async-upload.php>


</Files>
</IfModule>
<IfModule security_module>
<Files async-upload.php>


</Files>
</IfModule>
<IfModule security2_module>
<Files async-upload.php>


</Files>
</IfModule>
#END Image Upload HTTP Error Fix

(1)CAKEAPP -文件夹中的.htaccess

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

(2)ROOT/CAKEAPP/APP -文件夹中的.htaccess

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

(3)ROOT/CAKEAPP/APP/WEBROOT -文件夹中的.htaccess

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /app/webroot
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
4

2 回答 2

5

以下适用于mydomain.com/cakeapp

(0)ROOT文件夹中的 .htaccess

#Action php /cgi-php52/php
#AddHandler php52 .php

# BEGIN WordPress
<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteBase /
 RewriteRule ^cakeapp/(.*)$ /cakeapp/$1 [L,QSA]
 RewriteRule ^index\.php$ - [L]
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule . /index.php [L]
</IfModule>
# END WordPress

(1)CAKEAPP -文件夹中的.htaccess

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

(2)ROOT/CAKEAPP/APP -文件夹中的.htaccess

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

(3)ROOT/CAKEAPP/APP/WEBROOT -文件夹中的.htaccess

<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteBase /cakeapp
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
于 2013-06-24T10:48:56.660 回答
0

我有两个项目一个主要项目运行良好,但现在我想在同一个域上运行另一个 cakephp 项目。

所以你在写作的地方本教程将帮助你在子域上运行 cakephp

  1. 首先,您更改了 /httpdocs/ 上的 .htaccess
    重写引擎开启
    RewriteBase /
    RewriteRule ^$ cake_sub_project/app/webroot/ [L]
    RewriteRule (.*) cake_sub_project/app/webroot/$1 [L]
    
    
    这两个新行需要添加到您的主 .htaccess 文件中。这里的“cake_sub_project”是子项目
    RewriteRule ^$ cake_sub_project/app/webroot/ [L]
    RewriteRule (.*) cake_sub_project/app/webroot/$1 [L]
    

现在转到您的子文件夹并确保您已更改以下目录中的 .htacces。

    cake_sub_project/
    cake_sub_project/应用程序
    cake_sub_project/webroot
    
2. 需要从 /httpdocs/cake_sub_project 编辑 .htaccess 如下

重写引擎开启 RewriteBase /cake_sub_project/ RewriteRule ^$ app/webroot/ [L] RewriteRule (.*) app/webroot/$1 [L]

  1. 需要从 /httpdocs/cake_sub_project/app 编辑 .htaccess 如下

       
    
    重写引擎开启
    RewriteBase /cake_sub_project/app/
    重写规则 ^$ webroot/ [L]
    RewriteRule (.*) webroot/$1 [L]
    
    
  2. 需要从 /httpdocs/cake_sub_project/app/webroot 编辑 .htaccess 如下

       
    
    重写引擎开启
    RewriteBase /cake_sub_project/app/webroot/
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
    
    
于 2016-04-12T04:52:05.750 回答