«

»

lis 14

[Ubuntu, Apache2, mod_rewrite] Nie działający mod_rewrite

Problem:

Standardowa konfiguracja apacha2 dla Ubuntu blokuje nadpisywanie globalnych ustawień lokalnymi ustawieniami .htaccess, może być to mylące ponieważ wygląda jak niedziałający mod_rewrite tymczasem wystarczy jedna zmiana w pliku konfiguracyjnym – do dzieła!

Rozwiązanie:

W konsolce wpisujemy:

sudo nano /etc/apache2/sites-available/default


Wyszukujemy ustawienia dla katalogu /var/www:

        DocumentRoot /var/www
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

Interesująca nas informacja to deklaracja AllowOverride None(występuje ona dwa razy), w której zmieniamy None na All. Zapisujemy plik(Ctrl+O i Enter) i zamykamy Nano(Ctrl+X). W tym momencie apache będzie brał pod uwage ustawienia lokalnych plików .htaccess i nadpisywał nimi ustawienia globalne dla danego folderu. Pozostaje tylko aktywować mod_rewrite dla apacha przez wpisanie w konsoli:

sudo a2enmod rewrite

Otrzymamy komunikat o tym że, wymagany jest restart serwera apache by konfiguracja zaczeła działać – w konsoli wpisujemy:

sudo /etc/init.d/apache2 restart

Po ponownym uruchomieniu apacha tryb jest już aktywny – miłej zabawy!



Jeśli ten wpis pomógł Ci lub chociaż poprawił humor – fajnie byłoby jakbyś zostawił tu po sobie ślad :) pole komentarzy jest do Twojej dyspozycji

1 komentarz

  1. dune

    Czasami trzeba jeszcze dorobic linka:

    # cd /etc/apache2/mods-enabled
    # ln -s ../mods-available/rewrite.load

  2. Łukasz

    Fajnie napisane dzięki za prosty tutorial. A co do tych linków konfigurowałem to na Fedorze 2x Ubuntu i obyło się bez

  3. Grzegorz

    Dziękuję Emanuelowi1989. Bardzo rzeczowy, przejrzysty i przede wszystkim SKUTECZNY wpis-porada.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Możesz użyć tych znaczników i atrybutów HTMLa: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">