ottenere mod_rewrite per funzionare su Mac OS X

2

Sto cercando di ottenere la riscrittura mod per funzionare sul mio Mac. Questo è il contenuto del file .htaccess:

<Files *\.ini>
  order allow,deny
  deny from all
</Files>

RewriteEngine on
RewriteRule .* index.php

So che è attivo, perché blocca correttamente i file .ini e sembra riscrivere la richiesta fittizia /foo in index.php , poiché questo è l'errore che sto vedendo nel browser:

The requested URL /Users/rwel/Sites/dev/quaestio/index.php was not found on this server.

Il file index.php al momento contiene solo un'istruzione exit a scopo di test, e funziona quando lo chiama direttamente. Quindi, la domanda è, cosa sta andando male? Sono andato nel registro degli errori di Apache, e questo è quello che ho visto:

[Thu Nov 03 14:36:02 2011] [error] [client 127.0.0.1] File does not exist: /Library/WebServer/Documents/Users

Quindi il problema potrebbe essere che non sta cercando nella root, ma relativamente alla directory /Library/WebServer/Documents . Ho ragione? Come posso risolvere questo problema?

Grazie per il tuo aiuto!

    
posta Rijk 03.11.2011 - 16:01
fonte

2 risposte

4

Devi configurare gli host virtuali.

In /etc/apache2/httpd.conf decommenta la riga:

#Include /private/etc/apache2/extra/httpd-vhosts.conf

Adesso modifica /etc/apache2/extra/httpd-vhosts.conf. Rimuovi i vhosts di esempio, ma specifica un vhost predefinito come primo. Ecco un esempio di configurazione.

NameVirtualHost *: 80

<VirtualHost *:80>
        DocumentRoot /Library/WebServer/Documents
</VirtualHost>

<VirtualHost *:80>
        ServerName myproject
        DocumentRoot /Users/username/Sites/myproject
        <Directory /Users/username/Sites/myproject>
                Order Allow,Deny
                Allow from all
        </Directory>
</VirtualHost>

Riavvia apache eseguendo apache2ctl restart .

Devi aggiungere una voce al tuo file / etc / hosts in modo che il tuo nomeserver risolva:

127.0.0.1  myproject

Ora, quando accedi al link , le tue regole di riscrittura saranno relative alla radice del documento corretta.

    
risposta data 03.11.2011 - 16:38
fonte
0

Oltre alla soluzione di Gerry, ho aggiunto AllowOverride All che ha reso possibile la riscrittura nel mio caso;

<VirtualHost *:80>
        DocumentRoot /Library/WebServer/Documents
</VirtualHost>

<VirtualHost *:80>
        ServerName myproject
        DocumentRoot /Users/username/Sites/myproject
        <Directory /Users/username/Sites/myproject>
                Order Allow,Deny
                Allow from all
                AllowOverride All
        </Directory>
</VirtualHost>

Fonte: link

    
risposta data 29.12.2013 - 20:42
fonte

Leggi altre domande sui tag