2012-05-31 17 views
11

all. Questa volta provo cakephp, ma ho "La riscrittura dell'URL non è configurata correttamente sul tuo server 1) Aiutami a configurarla 2) Non riesco/non posso usare la riscrittura dell'URL". Potrei sapere che questo è apache e problemi .htaccess come/etc/apache2/sites-avaliable/default e ogni directory .htaccess.cakephp non funziona con riscrittura url su Ubuntu

mio ambiente di sviluppo ...

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

Il mio processo è seguito ...

1) /etc/apache2/httpd.conf

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

2) consentendo mod_rewrite

sudo a2enmod rewrite 
sudo service apache2 reload 

3) modificando/etc/apache2/sites-available/default (AllOverride Nessuno per AllOverride Tutto)

<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) la modifica o il controllo di ogni file .htaccess - directory> root torta

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

-> root directory app

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

- elenco> Webroot

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

Questo problema è stato risolto, grazie.

+1

define 'does not work' – Dunhamzzz

+1

Per me questo ha fatto il trucco. sudo a2enmod rewrite && sudo service apache2 reload – mac

+0

Ho fatto tutto eccetto il passaggio 1 .. grazie ^^ " –

risposta

6

Ho avuto anche questo problema. Risulta che il file .htaccess non è stato copiato insieme alla sorgente cakePHP. Questo è un problema comune quando si utilizza il comando cp o non si hanno file nascosti visibili in un browser di file, a meno che non si copi la directory di livello superiore.

Effettuare una copia diretta del file nella cartella del mio progetto ha risolto il problema senza dover modificare le impostazioni di apache.

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

Questo potrebbe essere un problema di autorizzazioni di file. Provare a impostare in modo ricorsivo i permessi su 777 per entrambe le directory webroot e tmp. La directory tmp potrebbe richiedere sudo.

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

Grazie per aver risposto. I permessi sono già a posto –

+0

Non si può semplicemente dare il permesso 777 a webroot. sicurezza –

0

Possibile configurazione errata:

Controllare se File http://your_domain_name/css/cake.generic.css è rechable dal browser. Se non sarà possibile ottenere l'avviso nel default-Homepage

Se si dispone di una directory {HOME}/css al livello principale, UrlRewriting non reindirizzerà http://your_domain_name/css/cake.generic.css-{HOME}/app/webroot/css/cake.generic.css.

Pertanto il file css non verrà trovato, causando il messaggio che la riscrittura dell'URL non è stata configurata correttamente. (Guarda l'app File/Visualizza/Pagine/home.cpt)

Soluzione: Rimuovere completamente la directory {HOME}/css a livello di root. Metti il ​​tuo css-File a {HOME}/app/webroot/css.