2012-05-31 15 views
11

alle. Dieses Mal versuche ich CakePHP, aber ich habe "URL Rewriting ist nicht richtig auf Ihrem Server konfiguriert. 1) Hilf mir, es zu konfigurieren 2) Ich kann nicht/URL Umschreiben verwenden". Ich weiß, dass dies Apache und .htaccess Probleme wie/etc/apache2/sites-avaliable/default und jedes Verzeichnis .htaccess ist.CakePHP funktioniert nicht URI-Umschreiben auf Ubuntu

Meine Entwicklungsumgebung ...

  • Ubuntu12.04 auf vmware fusion4
  • apache2.2.22
  • mysql5.5
  • php5.3.10
  • cakephp2.1

Mein Prozess wird befolgt ...

1) /etc/apache2/httpd.conf

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

2) ermöglicht mod_rewrite

sudo a2enmod rewrite 
sudo service apache2 reload 

3) editing/etc/apache2/sites-avaliable/default (AllOverride None 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 

4) Bearbeitung oder Überprüfung jeder Datei .htaccess -> Kuchen Stammverzeichnis

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

-> app Stammverzeichnis

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

-> Webroot-Verzeichnis

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

Dieses Problem wird gelöst, danke.

+1

define 'funktioniert nicht' – Dunhamzzz

+1

Für mich hat das den Trick gemacht. sudo a2enmod umschreiben && sudo service apache2 reload – mac

+0

Ich habe alles außer Schritt 1 .. danke ^^ " –

Antwort

6

Ich hatte dieses Problem auch. Stellt sich heraus, .htaccess Datei wurde nicht neben der cakePHP Quelle kopiert. Dies ist ein häufiges Problem, wenn Sie den Befehl cp verwenden oder versteckte Dateien in einem Dateibrowser nicht anzeigen, es sei denn, Sie kopieren das Verzeichnis der obersten Ebene.

Eine direkte Kopie der Datei in meinen Projektordner wurde für mich repariert, ohne mich mit meinen Apache-Einstellungen herumschlagen zu müssen.

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

Dies könnte ein Dateiberechtigungs-Problem sein. Versuchen Sie, die Berechtigungen für die Verzeichnisse webroot und tmp rekursiv auf 777 zu setzen. Das tmp-Verzeichnis benötigt möglicherweise sudo.

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

Danke für die Beantwortung. Berechtigungen sind schon in Ordnung. –

+0

Sie können nicht einfach 777 Erlaubnis zu Webroot geben. Das wird zu Null führen Sicherheit –

0

Mögliche missconfiguration:

Überprüfen Sie, ob Datei http://your_domain_name/css/cake.generic.css rechable von Ihrem Browser ist. Wenn nicht, dass Sie die Warnung in der Standard-Homepage

bekommen Wenn Sie ein {HOME}/css Verzeichnis auf der obersten Ebene haben, URLRewriting nicht http://your_domain_name/css/cake.generic.css-{HOME}/app/webroot/css/cake.generic.css umleiten.

Somit wird die CSS-Datei nicht gefunden, was zu der Meldung führt, dass das URL-Rewriting nicht richtig konfiguriert ist. (Blick auf Datei app/Ansicht/Pages/home.cpt)

Lösung: Komplett {HOME}/css Verzeichnis auf Stammebene entfernen. Legen Sie Ihre CSS-Datei unter {HOME}/app/webroot/css.

Verwandte Themen