cakephp在Ubuntu上不起作用

Shi*_*Ota 11 apache mod-rewrite cakephp cakephp-2.1

所有.这次我尝试使用cakephp,但是我的"服务器上没有正确配置URL重写.1)帮我配置它2)我不能/不能使用URL重写".我可以知道这是apache和.htaccess问题,例如/ etc/apache2/sites-avaliable/default和每个目录.htaccess.

我的开发环境......

  • Umntu12.04在vmware fusion4上
  • apache2.2.22
  • mysql5.5
  • php5.3.10
  • cakephp2.1

我的流程遵循......

1)/etc/apache2/httpd.conf

<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
Run Code Online (Sandbox Code Playgroud)

2)启用mod_rewrite

sudo a2enmod rewrite
sudo service apache2 reload
Run Code Online (Sandbox Code Playgroud)

3)编辑/ etc/apache2/sites-avaliable/default(AllOverride None to AllOverride All)

<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order Allow,Deny
Allow from all
</Directory>

prompt: sudo service apache2 reload
Run Code Online (Sandbox Code Playgroud)

4)编辑或检查每个.htaccess文件 - > cake根目录

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

- > app根目录

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

- > webroot目录

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

这个问题解决了,谢谢.

Nuc*_*eon 6

我也有这个问题.事实证明.htaccess文件没有被复制到cakePHP源旁边.除非您复制顶级目录,否则在使用cp命令或在文件浏览器中没有隐藏文件时这是一个常见问题.

直接将文件复制到我的项目文件夹,为我修复它,而不必弄乱我的apache设置.

cp ~/git/cakePHP/.htaccess ~/project/folder/
Run Code Online (Sandbox Code Playgroud)