.htaccess rewriterule non funziona correttamente su mac

Ho un progetto sul mio mac book pro leopard, e sto usando built in apache2 e php. Ho fatto le mie configurazioni sia in httpd.conf che in user.conf per usare htaccess. Modifiche fatte come:

LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so <Directory > AllowOverride All </Directory> 

Il problema è quando voglio aprire un sito come localhost / ~ username / sito / sito / index.php / welcome, index.php esegue alcune operazioni e trova il controller giusto e la pagina giusta.

Ma quando provo ad entrare nel sito come sito / benvenuto apache mi dà il seguente errore:

Non trovato

L'URL richiesto Utenti / nome utente / Siti / sito / index.php / benvenuto non è stato trovato su questo server.

Il problema è che Apache ottiene questo come se fosse davvero un file e la dichiarazione di errore lo fornisce in un modo di file system, ma questa richiesta deve essere invece scaricata su index.php.

il mio file .htaccess ha questo aspetto

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

Ciò che mi infastidisce è che questa configuration funziona sia su Linux che su Windows ma non funziona su Mac. Mi sento condannato:)

Ho incontrato lo stesso problema anche io! 'DocumentRoot' non funziona per me in Lion.

Ma questo funziona:

 RewriteEngine On RewriteBase /~username/YOURPath RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [NC,QSA,L] 

Su Mac OSX Mountain Lion, assicurati che AllowOverride sia impostato su All sulla directory /

 <Directory /> Options FollowSymLinks AllowOverride All Order deny,allow Deny from all </Directory> 

e directory principale del path root del documento:

 <Directory "/Library/WebServer/Documents"> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny Allow from all </Directory> 

assicurarsi inoltre che FollowSymLinks sia incluso in Options .

se il tuo "URL grazioso index.php-less" non è sul tuo DocumentRoot allora aggiungi la seguente directory RewriteBase sul tuo file .htaccess in cui esiste index.php, come nell'esempio seguente:

 RewriteBase /~username/site/site/ 

Se desideri modificare il nome del file .htaccess in qualcos'altro come .acl o htaccess.txt , decommenta la seguente row sul tuo httpd.conf

 # Various default settings Include /private/etc/apache2/extra/httpd-default.conf 

e cambia .htaccess nella direttiva AccessFileName su qualsiasi cosa ti piaccia nel file extra/httpd-default.conf . Ad esempio, se desideri modificare il file .htaccess in htaccess.txt in:

 AccessFileName htaccess.txt 

salvali, riavvia il tuo server web Apache su OSX Mountain Lion e spera che tu sia a posto. Spero che questo ti aiuti.

Devi aggiungere la seguente row al tuo file .htaccess:

 DocumentRoot "/~username/site/" 

Ho appena avuto lo stesso problema ma le soluzioni di cui sopra non hanno funzionato per me,

Rimuovere la barra dall'inizio ha fatto il trucco (credo perché il mio browser gira già con l'utente corretto).

Quindi RewriteRule ^ Registrati /register.php

È diventato RewriteRule ^ Registrati register.php

Questo mi ha fatto impazzire! BTW Sto eseguendo xampp (apache 2) su mac os 10.8.

Se metto un .htaccess in / Library / WebServer / Documents e apro "localhost /"; per testarlo, funziona come previsto. Semplicemente non funziona in "~ / Sites".