我想我们大多数人都遇到了麻烦.htaccess我想知道是否有人可以帮助我。 Opensuse 12.3: 代码:
Linux linux-hyo0.site 3.7.10-1.16-desktop #1 SMP PREEMPT Fri May 31 20:21:23 UTC 2013 (97c14ba) x86_64 x86_64 x86_64 GNU/Linux
我喜欢在我的机器上安装Cakephp,但我的网页上有一个错误,说“ 码: 您的服务器上未正确配置网址重写。 “
我的/ etc / sysconfig / apache2文件如下: 代码:
APACHE_MODULES="authz_host actions alias auth_basic authz_groupfile authn_file authz_user autoindex cgi dir include log_config mime negotiation setenvif status userdir asis imagemap php5 reqtimeout authz_default rewrite"
和/etc/apache2/sysconfig.d/loadmodule.conf在最后这一行 代码:
LoadModule rewrite_module /usr/lib64/apache2/mod_rewrite.so
我也改变了我的文件etc / apache2 / defaul-server.conf
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory "/srv/www/htdocs">
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 [L]
</IfModule>
并在app /
上<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ webroot/ [L]
RewriteRule (.*) webroot/$1 [L]
</IfModule>
答案 0 :(得分:6)
这是一个相当古老的问题但是这个答案可能与你的Google用户相关:
您是否更改了View / Layouts / default.ctp?
这是警告的结果:
那么当默认主页加载时会发生什么:它尝试加载cake.generic.css样式表,当正确配置mod_rewrite时成功。那么警告就被隐藏了。如果无法加载样式表,警告将保持可见。
简而言之,当mod_rewrite和htaccess,出现问题或者您更改了布局以便不再加载cake.generic.css时,会弹出此警告 ... < / p>
首先检查您是否尝试加载样式表。它会出现在您的F12控制台中吗?
答案 1 :(得分:2)
在尝试追踪问题的几个小时后,我终于发现我的.htaccess文件从未存在过。我将以下代码复制到一个新的.htaccess文件中,然后将其复制。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
答案 2 :(得分:1)
首先我要说:我讨厌CAKEPHP !!!!
我只花了几个小时研究这个问题。
我通过检查app / webroot / css / cake.generic.css了解到蛋糕测试URL重写
确保存在。
在我检查了apache error_log并看到它抱怨无法找到http:/ myproject / css后,我的解决方案出现了。嗯,默认情况下没有css目录。我创建了一个链接(ln -s app / webroot / css),它解决了Cake的问题。
答案 3 :(得分:1)
如果在新安装Cakephp后出现此错误,并且您没有更改任何文件(css文件或cake.generic.css),请执行以下操作:
答案 4 :(得分:0)
确保将所有AllowOverride None更改为AllowOverride All
我有这个问题并解决了这个复制蛋糕行的问题:
http://book.cakephp.org/2.0/en/installation/url-rewriting.html
答案 5 :(得分:0)
根文件夹中还有一个.htaccess文件,即/.htaccess。这可能没有被复制,因为它被大多数操作系统默认隐藏。
尝试将其添加为/.htaccess的内容,并将其检查到Web服务器。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
http://book.cakephp.org/2.0/en/installation/url-rewriting.html
有更多解释答案 6 :(得分:-1)
有两种解决方案:
1)将Apache配置文件中的DocumentRoot
设置为 app / webroot / 目录,CakePHP将使用 .htaccess 文件。
2)在应用程序的根目录中放置一个 .htaccess 文件,因为默认情况下,如果您使用CakePHP控制台生成应用程序,我认为不会创建一个。 .htaccess 文件应该是这样的:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>