我是第一次部署CakePHP(1.3.2)网站。它托管在较旧的服务器上。我收到了一个zip文件项目。我设法将它安装在我的localhost上并进行了我需要的更改。
现在我必须将它部署到新服务器,但我遇到了问题。
路由似乎不起作用。我想这是一个.htaccess
问题。
当我访问根文件夹时,它会将我重定向到/login
但是我有一个404:
在此服务器上找不到请求的URL /登录信息。
我的3个主要.htaccess文件(/
,/app
和/app/webroot
)如下。 (CakePHP安装在我的虚拟主机的根目录下)
根
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
/应用
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ webroot/ [L]
RewriteRule (.*) webroot/$1 [L]
</IfModule>
/应用/根目录
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>
mod_rewrite
似乎在我的服务器上被激活,因为当我尝试添加它时它会响应:
模块重写已启用
但是当我在我的根.htaccess
之上尝试这样简单的事情时,它并没有做任何事情:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^.*$ test.php
</IfModule>
(我遵循了这个指南:https://docs.bolt.cm/howto/making-sure-htaccess-works)
在很多事情中,我也尝试将其添加到我的所有.htaccess
:
选项索引
但它没有帮助。
这也是我的网站配置文件:
<VirtualHost xx.x.xx.xx:80>
ServerAdmin xxx@company.com
ServerName xxx.company.com
DocumentRoot /var/www/xxx.company.com
DirectoryIndex index.html index.php
php_value error_log "/var/log/apache2/xxx.company.com-phperror.log"
php_flag register_globals off
<Directory "/var/www/xxx.company.com">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/xxx.company.com-error.log
CustomLog /var/log/apache2/xxx.company.com-access.log common
</VirtualHost>
(我添加了首先不在这里的目录部分)
经过大量的试验,我仍然没有找到任何可以解决我问题的方法。
由于我绝对不习惯在服务器端工作,因此您可能会立即发现这一点很简单。我希望如此。
由于
答案 0 :(得分:0)
我终于开始工作了。以下是我犯的两个错误:
/app/webroot
文件中DocumentRoot /var/www/xxx.company.com
之后添加了.conf
。service apache2 restart
代替工作。