2012-05-31 21 views
11

wszystko. Tym razem wypróbowałem cakephp, ale mam "Napisanie URL nie jest poprawnie skonfigurowane na twoim serwerze 1) Pomóż mi go skonfigurować 2) Nie używam/nie mogę używać przepisywania adresów URL". Mogłem wiedzieć, że są to problemy z apache i .htaccess, takie jak/etc/apache2/sites-available/default i each directory .htaccess.cakephp nie działa do przepisywania adresów URL na Ubuntu

mojego środowiska rozwoju ...

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

Mój proces jest śledzony ...

1) /etc/apache2/httpd.conf

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

2) umożliwienie Mod_rewrite

sudo a2enmod rewrite 
sudo service apache2 reload 

3) Edycja/etc/apache2/sites-dostępna/default (AllOverride Żaden do AllOverride Wszystko)

<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) Montaż lub sprawdzając każdy plik .htaccess - katalog> root ciasto

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

-> root aplikacja katalog

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

- katalog> Webroot

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

Ten problem został rozwiązany, dziękuję.

+1

zdefiniować "nie działa" – Dunhamzzz

+1

Dla mnie to załatwiło sprawę. sudo a2enmod rewrite && sudo service apache2 przeładuj – mac

+0

Zrobiłem wszystko z wyjątkiem kroku 1 .. dzięki ^^ " –

Odpowiedz

6

Miałem również ten problem. Okazuje się, że plik nie został skopiowany wraz ze źródłem CakePHP. Jest to częsty problem podczas używania polecenia cp lub braku ukrytych plików widocznych w przeglądarce plików, chyba że skopiujesz katalog najwyższego poziomu.

Wykonanie bezpośredniej kopii pliku do mojego folderu projektu naprawiono dla mnie bez bałaganu z moimi ustawieniami apache.

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

Może to być problem z uprawnieniami do pliku. Spróbuj rekurencyjnie ustawić uprawnienia na 777 dla katalogów webroot i tmp. Katalog tmp może wymagać sudo.

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

Dzięki za udzielenie odpowiedzi uprawnienia już były w porządku –

+0

Nie możesz po prostu dać 777 pozwolenia na webroot. bezpieczeństwo –

0

Możliwa missconfiguration:

Sprawdź, czy plik http://your_domain_name/css/cake.generic.css jest rechable z przeglądarki. Jeśli nie otrzymasz ostrzeżenie w domyślnym-homepage

Jeśli masz {HOME}/css katalog na poziomie korzenia, UrlRewriting nie przekieruje http://your_domain_name/css/cake.generic.css do {HOME}/app/webroot/css/cake.generic.css.

W ten sposób plik css nie zostanie znaleziony, co powoduje komunikat, że przepisywanie adresu URL nie jest poprawnie skonfigurowane. (Spójrz na aplikację Plik/Widok/Strony/home.cpt)

Rozwiązanie: Całkowicie usuń {HOME}/css Katalog na poziomie root. Umieść swój plik css pod numerem {HOME}/app/webroot/css.

Powiązane problemy