Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess用于cakephp_Php_.htaccess_Cakephp_Apache2 - Fatal编程技术网

.htaccess用于cakephp

.htaccess用于cakephp,php,.htaccess,cakephp,apache2,Php,.htaccess,Cakephp,Apache2,我正在尝试让CakePHP应用程序正常工作。为此,我设置了一个全新的Debian安装,更新了配置,并将所有内容放在/var/www中,其中包含以下内容: app cake .htaccess index.php vendors .htaccess文件包含以下内容: <IfModule mod_rewrite.c> RewriteEngine on RewriteRule ^$ /webroot/ [L] RewriteRule (.*) /

我正在尝试让CakePHP应用程序正常工作。为此,我设置了一个全新的Debian安装,更新了配置,并将所有内容放在/var/www中,其中包含以下内容:

app
cake
.htaccess
index.php
vendors
.htaccess文件包含以下内容:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule    ^$    /webroot/ [L]
    RewriteRule    (.*) /webroot/$1 [L]
</IfModule>
因此我的问题是:CakePHP需要什么正确的.htaccess


非常非常感谢

正确的.htaccess是默认值:

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

重新启动发动机
重写规则^$webroot/[L]
重写规则(.*)webroot/$1[L]
您必须在“/etc/apache2/sites enabled/default”中添加此项:


选项索引跟随符号链接多视图
允许超越所有
命令允许,拒绝
通融

如果节已存在,请将AllowOverride None更改为AllowOverride All,答案是有3个不同的.htaccess文件:

/var/www/app/webroot/.htaccess


重新启动发动机
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_FILENAME}-F
重写规则^(.*)$index.php?url=$1[QSA,L]
/var/www/app/.htaccess


重新启动发动机
重写规则^$webroot/[L]
重写规则(.*)webroot/$1[L]
/var/www/.htaccess


重新启动发动机
重写规则^$app/webroot/[L]
重写规则(*)app/webroot/$1[L]

都是我的错,所有的东西都列在清单上了。谢谢大家

从主文件中删除.htaccess可以解决此问题。它对我有效(无需从webroot删除)

如果您的提供商允许,您可以将所有内容放入httpd.conf文件中,如下所示

<Directory /var/www>
  Options Indexes FollowSymLinks MultiViews
  AllowOverride All
  Order allow,deny
  allow from all
  <IfModule mod_rewrite.c>
      RewriteEngine on
      RewriteRule    ^$    webroot/    [L]
      RewriteRule    (.*) webroot/$1    [L]
  </IfModule>
</Directory>

选项索引跟随符号链接多视图
允许超越所有
命令允许,拒绝
通融
重新启动发动机
重写规则^$webroot/[L]
重写规则(.*)webroot/$1[L]

等等,对于其他目录…

CakePHP在webroot目录中只有一个
.htaccess
文件。无需更多
.htaccess
文件。您必须将
app/webroot
设置为您的
DOCUMENT\u ROOT

apache配置中的站点根目录是什么?应该是/var/www/app/webroot-这可能会解决您的问题。@inkedmn:谢谢,应该是/var/www-但错误是因为我只使用了一个.htaccess,而不是我刚刚发现的3。非常感谢。在找到我的日志文件并用谷歌搜索上面列出的错误后,我发现了这个!非常感谢!如何在cakephp3中使用此方法,因为cakephp3中没有应用程序文件夹。请帮助我。图像未加载,链接未打开,但索引页正在运行。请Help@MrG
<Directory /var/www>
  Options Indexes FollowSymLinks MultiViews
  AllowOverride All
  Order allow,deny
  allow from all
</Directory>
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>
<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule    ^$    webroot/    [L]
    RewriteRule    (.*) webroot/$1    [L]
</IfModule>
<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule ^$ app/webroot/ [L]
    RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
<Directory /var/www>
  Options Indexes FollowSymLinks MultiViews
  AllowOverride All
  Order allow,deny
  allow from all
  <IfModule mod_rewrite.c>
      RewriteEngine on
      RewriteRule    ^$    webroot/    [L]
      RewriteRule    (.*) webroot/$1    [L]
  </IfModule>
</Directory>