2010-09-19 21 views
17

Jestem nowy w administrowaniu serwerem, ale udało mi się uzyskać konfigurację LAMP działającą na moim nowym VPS. Przesłałem kilka plików sieciowych, które działają na moim drugim serwerze, ale wydaje mi się, że mam błąd: "Plik nie istnieje" w moim pliku /var/log/apache2/error.log. Strona główna ładuje się dobrze przez moje skrypty, ale inne strony nie.mod_rewrite nie działa

plik .htaccess kod

Options +FollowSymlinks 
    RewriteEngine On 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ index.php?r=$1 [L,QSA] 

mam włączony mod_rewrite na serwerze i można zobaczyć go w ruchu pod moim phpinfo() Strona stworzyłem. Po prostu nie wiem, dlaczego tak się dzieje. Jeśli chcę opublikować cokolwiek innego, proszę dać mi znać :)

Odpowiedz

37

Wygląda na to, że Twoja witryna lub host wirtualny nie ma odpowiednich uprawnień do przetwarzania plików .htaccess. Możesz go łatwo przetestować, celowo popełniając błąd składni: jeśli twoja strona się nie zawiesza, plik jest ignorowany.

Spróbuj czegoś takiego w swoim głównym httpd.conf pliku:

<Directory "/path/to/your/site"> 
    AllowOverride All 
</Directory> 

... albo ten (do własnych upodobań):

<VirtualHost *:80> 
    AllowOverride All 
</VirtualHost> 
+0

Dzięki za komentarz. Gdzie mogę znaleźć mój główny plik httpd.conf? – RhapX

+0

Nieważne, mam to ustalone. Dziękuję bardzo! – RhapX

+0

Nie ma za co. –

8

Gdy miałem ten problem, okazało się, że /etc/apache2/sites-enabled/000-default miał AllowOverride All, ale /etc/apache2/apache2.conf miał również ten sam wpis dla naszej sieci Directory z AllowOverwrite None. Sprawdź więc oba miejsca!

+0

Dziękujemy! Kocham Cię! Rozwiązałeś mój problem <3 Nienawidzę tego rodzaju plików konfiguracyjnych: D – sczdavos