2012-05-31 101 views
11

上的所有url重寫。這次我嘗試了cakephp,但是我得到了「URL重寫沒有在你的服務器上正確配置1)幫我配置它2)我沒有/不能使用URL重寫」。我可以知道這是apache和.htaccess問題,例如/ etc/apache2/sites-avaliable/default和每個目錄.htaccess。cakephp不工作在Ubuntu

我的開發環境...

  • Ubuntu12.04在VMware fusion4
  • apache2.2.22
  • mysql5.5
  • php5.3.10
  • cakephp2.1

我的過程如下...

1)/etc/apache2/httpd.conf

<Directory /> 
Options FollowSymLinks 
AllowOverride All 
</Directory> 

2)啓用的mod_rewrite

sudo a2enmod rewrite 
sudo service apache2 reload 

3)編輯/ etc/apache2的/位點-avaliable /缺省(AllOverride無給AllOverride所有)

<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 

4)編輯或檢查每個.htaccess文件 - >餅根目錄

<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> 

- > webroot的目錄

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

這個問題就解決了,謝謝你。

+1

define'does not work' – Dunhamzzz

+1

對我來說,這是個伎倆。 sudo a2enmod rewrite && sudo service apache2 reload – mac

+0

我做了除第1步以外的任何事情..謝謝^^「 –

回答

6

我也有這個問題。原來.htaccess文件沒有與cakePHP源一起被複制。在使用cp命令時,這是一個常見問題,或者在文件瀏覽器中沒有隱藏文件可見的情況下,除非您複製頂級目錄。

將文件直接複製到我的項目文件夾中,爲我解決了這個問題,而不必惹惱我的apache設置。

cp ~/git/cakePHP/.htaccess ~/project/folder/ 
-1

這可能是文件權限問題。爲webroot和tmp目錄嘗試遞歸地將權限設置爲777。 tmp目錄可能需要sudo。

sudo chmod -R 777 /path/to/app/webroot/ 
sudo chmod -R 777 /path/to/app/tmp/ 
+0

感謝您的回答。權限已經很好。 –

+0

您不能簡單地給777權限給webroot。這將導致零安全 –

0

可能missconfiguration:

檢查文件是否http://your_domain_name/css/cake.generic.css是從瀏覽器rechable。如果不是如果你有根級{HOME}/css目錄,你會得到默認,首頁

警告,URL重寫不會重定向到http://your_domain_name/css/cake.generic.css{HOME}/app/webroot/css/cake.generic.css

因此,將不會找到css文件,導致URL重寫消息配置不正確。 (看文件app /查看/頁/ home.cpt)

解決方案:完全刪除{HOME}/css在根目錄的目錄。把你的css文件在{HOME}/app/webroot/css