在ubuntu的cakephp项目中在此服务器上找不到请求的URL /users/login

1 ubuntu cakephp apache2 htdocs ubuntu-16.04

我已经在 ubuntu 服务器上上传了一个完整的 cakephp 项目,我在这里使用了 apache2。

我的项目在我的 locak 服务器(xampp)中正常工作,但在服务器中显示此错误:

在此服务器上找不到请求的 URL /users/login。

我的项目位于var/www/html.

这是我的.htdocs文件:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule ^$ app/webroot/  [L]
    RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)

我需要一个适当的解决方案。

Der*_*rek 5

检查 apache 配置文件是否有 rewrite_module 行并且它没有被注释:

/etc/apache2/apache2.conf

LoadModule rewrite_module libexec/apache2/mod_rewrite.so
Run Code Online (Sandbox Code Playgroud)

还要确保您的覆盖和符号链接选项在上述 apache 配置中是正确的:

<Directory />
    Options FollowSymLinks
    AllowOverride All
#    Order deny,allow
#    Deny from all
</Directory>
Run Code Online (Sandbox Code Playgroud)

根据您的 cakephp 版本,.htaccess 应该喜欢这些。

应用程序/.htacces CakePHP 2:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule    ^$    app/webroot/    [L]
    RewriteRule    (.*) app/webroot/$1    [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)

/.htacces CakePHP 3:

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

webroot/.htaccess两个版本:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)