Mam projekt strony internetowej na moim MacBook Pro Leopard, a ja używam wbudowanego apache2 i php. Zrobiłem moje konfiguracje zarówno w httpd.conf, jak i user.conf, aby używać htaccess. Zmiany wprowadzane jak:.htaccess rewriterule nie działa poprawnie na Macu
LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so
<Directory >
AllowOverride All
</Directory>
Problem jest, gdy chcę otworzyć witrynę jak localhost/~ nazwa_użytkownika/miejscu/miejscu/index.php/powitalnym index.php wykonuje kilka operacji i znajdzie odpowiedniego kontrolera i właściwa strona.
Ale gdy próbuję wejść witryny jak strony/welcome Apache daje mi następujący błąd:
Not Found
Żądany URL Użytkownicy/nazwa_użytkownika/Miejsca/site/index.php/powitanie nie było znaleźć na tym serwerze.
Problem polega na tym, że apache pobiera to tak, jakby rzeczywiście był plikiem, a instrukcja błędu podaje go w systemie plików, ale to żądanie musi zostać pobrane do pliku index.php.
mój plik .htaccess wygląda tak
<ifModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [NC,QSA,L]
</ifModule>
Co denerwuje mnie, że ta konfiguracja działa zarówno na Linux i Windows, ale nie działa na Mac. Czuję skazane:)
można potwierdzić moduł przepisywania został włączony poprawnie? – Phil
tak, widzę je w załadowanej sekcji modułów phpinfo(); – LostMohican
Czy rozważasz zmianę akceptowanej odpowiedzi? Ten, który zaakceptowałeś, jest w rzeczywistości niepoprawny. Odpowiedź @tong jest poprawna. – spikyjt