Apache z zainstalowanym modyfikacją. Włącz moduł przepisywania modów w Apache



przepisać i przepisać (13)

Mam nową wersję Apache 2.2 na moim komputerze z systemem Vista, wszystko działa dobrze, z wyjątkiem przepisania moda.

Nie skomentowałem

LoadModule moduły rewrite_module/mod_rewrite.s

ale żadna z moich reguł przepisywania nie działa, nawet te proste

RewriteRule not_found %(DOCUMENT_ROOT)/index.php?page=404

Wszystkie reguły, których używam, działają na moim hostingu, więc powinno być dobrze, więc moje pytanie brzmi: czy w konfiguracji Apache jest ukryta rzecz, która może blokować przepisanie moda?

Jeśli nie wspomniano powyżej, spróbuj edytować /etc/apache2/sites-enabled/000-default

prawie na górze znajdziesz

Opcje Indeksy FollowSymLinks MultiViews ZezwólOverride Brak Kolejność zezwalaj, odmawiaj zezwalania wszystkim

Zmień opcję Zezwalaj na brak opcji Zezwól na opcję Zezwalaj na wszystko

to zadziałało dla mnie

Oczywiście można to zrobić na wiele sposobów, ale sugerowałbym użycie bardziej standardowego:

Dokument błędu 404 /index.php?page=404

Zdecydowanie doradziłbym każdemu, kto chce włączyć dyrektywy mod_rewrite w plikach .htacces, aby korzystał zAllowOverride FileInfo zamiast zezwalać na wszystko, jak sugerują WSZYSTKIE odpowiedzi na tej stronie. Przykro nam, że wszystkie te odpowiedzi opierają się na podejściu „jak długo to działało”, zamiast próbować zrozumieć implikacje proponowanego „rozwiązania”. Spróbuj zrozumieć, co robisz na swoim serwerze i jak ograniczyć uprawnienia, które właśnie nadałeś, za pomocą funkcjiAllowOverride All . RTFM! , jest to dość oczywiste w tej kwestii. Dajcie spokój, to nie są rakiety, to tylko serwer WWW!

Co zadziałało dla mnie (w Ubuntu):

Sudo su cd /etc/apache2/mods-enabled ln ../mods-available/rewrite.load rewrite.load

Jak już wspomniano, upewnij się, że opcjaAllowOverride all jest ustawiona w odpowiedniej sekcji pliku /etc/apache2/sites-available/default

W mojej sytuacji miałem

Przepisz silnik włączony

w moim .htaccess wraz z ładowanym modułem i to nie zadziałało.

Rozwiązaniem mojego problemu była edycja mojego wpisu vhost dla inlcude

ZezwólZastąp wszystko

W rozdziale dla tej witryny.

Kiedy po raz pierwszy zmagałem się z regułami mod_rewrite, ignorując mój ruch, dowiedziałem się (rozczarowująco), że umieściłem je w złym miejscu co oznaczało, że mój ruch będzie je ignorował wszyscy niezależnie od tego, jak dobrze są napisane. Upewnij się, że Tobie się to nie przydarzyło:

# Zmień lokalizację dziennika, aby dopasować ją do swojego systemu. RewriteLog /var/log/apache-rw.log RewriteLogPoziom 2

Opcje te zostaną włączone, jeśli zgrabnie zrestartujesz Apache, abyś mógł je przerobić i uważnie obserwować zachowanie mod_rewrite. Po rozwiązaniu problemu przywróć RewriteLogLevel i sprawdź.

W 100% mojego doświadczenia odkryłem, że RewriteLog pomógł mi odkryć problem z moimi regułami przepisywania. Nie mogę tego wystarczająco polecić. Powodzenia w rozwiązywaniu problemów!

Ponadto ta zakładka jest Twoim najlepszym przyjacielem: http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewritelog

właśnie to zrobiłem

Przepisanie Sudo a2enmod

następnie musisz ponownie uruchomić usługę Apache, wykonując polecenie

Uruchom ponownie usługę Sudo Apache2

Nowa wersja Apache uległa pewnym zmianom. Jeśli twoja wersja Apache to 2.4, musisz przejść do /etc/apache2/ . Pojawi się plik o nazwie Apache2.conf. Musisz go edytować (musisz mieć uprawnienia roota). Zmień tekst katalogu w ten sposób

Opcje Indeksy FollowSymLinks ZezwólOverride All Wymagaj przyznania wszystkich

Teraz uruchom ponownie Apache.

Przeładuj usługę Apache2

Mam nadzieję, że to zadziała.

Otwórz terminal i wpisz a2enmod rewrite , włączy to moduł mod_rewrite dla Apache.

Następnie przejdź do /etc/apache2/sites-available i edytuj plik domyślny. (Aby to zrobić, musisz mieć prawa dostępu do tego pliku i dostępnego folderu.)

Zastąp poniżej istniejącymi liniami od 4 do 14

Katalog główny dokumentu /var/www Opcje FollowSymLinks ZezwólOverride All Opcje Indeksy FollowSymLinks MultiViews ZezwalajOverride All Kolejność Zezwól, odmów Zezwalaj wszystkim

Teraz zrestartuj Apache za pomocą /etc/init.d/apache2 restart lub restart usługi Apache2

Powtórz test czystego adresu URL i tym razem zostanie on zaliczony.

Spróbuj ustawić: Zezwól na zastąpienie wszystkich.

Drugim najczęstszym problemem jest brak włączonego moda do przepisywania a2enmod: przepisanie a2enmod i ponowne uruchomienie Apache.

Przepisanie A2enmod

Uruchom ponownie usługę Apache2

mod_rewrite zostanie teraz włączony!

Stary wątek, chcę tylko zaznaczyć, że nie ustawiaj opcjiAllowOverride dla wszystkich, ale użyj konkretnego moda, którego chcesz użyć,

Zezwól na zastąpienie mod_rewrite mod_mime

I ten wiersz należy skomentować

LoadModule moduły rewrite_module/mod_rewrite.so

Aby użyć mod_rewrite, możesz wprowadzić następujące polecenie w terminalu:

Przepisanie Sudo a2enmod

Uruchom ponownie Apache2 po

Sudo /etc/init.d/apache2 uruchom ponownie

Uruchom ponownie usługę Sudo Apache2

lub zgodnie z nowym, ujednoliconym sposobem zarządzania systemem

Sudo systemctl uruchom ponownie Apache2

Następnie, jeśli chcesz, możesz użyć następującego pliku .htaccess.

RewriteEngine na bazie RewriteBase / RewriteCond %(REQUEST_FILENAME) !-f RewriteCond %(REQUEST_FILENAME) !-d RewriteRule . /index.php [L]

Powyższy plik .htaccess (jeśli zostanie umieszczony w DocumentRoot) przekieruje cały ruch do pliku Index.php w DocumentRoot, jeśli plik nie istnieje.

Załóżmy, że masz następującą strukturę katalogów, a httpdocs to DocumentRoot

Httpdocs/ .htaccess indeks.php obrazy/ hello.png js/ jquery.js css/ style.css include/ app/ app.php

Każdy plik istniejący w httpdocs zostanie przekazany żądającemu przy użyciu .htaccess pokazanego powyżej, jednak wszystkie inne zostaną przekierowane do httpdocs/index.php . Twoje pliki aplikacji w plikach include/app nie będą dostępne.



mod_rewrite włącz (7)

Nie, mod_rewrite jest modułem Apache i nie ma nic wspólnego z PHP.

Aby włączyć moduł, musi być aktywna następująca linia w pliku httpd.conf:

LoadModule moduły rewrite_module/mod_rewrite.so

aby upewnić się, że jest już aktywny, spróbuj umieścić plik .htaccess w katalogu internetowym zawierającym linię

Przepisz silnik włączony

jeśli to zadziała bez zgłaszania wewnętrznego błędu serwera 500 i plik .htaccess zostanie przetworzony, adresy URL zostaną przepisane.

Jeśli dobrze rozumiem, muszę dodać coś do httpd.config, aby włączyć mod_rewrite. Jeśli tak, co muszę dodać do httpd.conf lub apache.conf? Proszę podać system operacyjny.

Nie, nie musisz. mod_rewrite jest modułem Apache. To nie ma nic wspólnego z php.ini.

W moim przypadku problem pojawił się nawet po tych wszystkich konfiguracjach (@Pekka wspomniał o zmianach w plikach httpd.conf i .htaccess). Problem został rozwiązany dopiero po dodaniu

Zamów zezwolenie, odmów Zezwalaj ze wszystkich ZezwólZastąp wszystko

do konfiguracji hosta wirtualnego w pliku vhost

Zmień na 29.09.2017 (dla Apache 2.4<) См. Этот ответ

DocumentRoot „E:/Documenten/Dropbox/Dropbox/dummy-htdocs” Nazwa serwera dropbox.local ErrorLog „logs/dropbox.local-error.log” CustomLog „logs/dropbox.local-access.log” łącznie # Zezwól na wszystko # Przestarzałe # Zamawiaj Zezwalaj, Odmów # Przestarzałe # Zezwól na wszystkie # Przestarzałe # --Nowy sposób robienia tego Wymagaj przyznania wszystkich

W większości przypadków moduł rewrite_module jest wbudowany w serwer

Użyj.htaccess

Użyj generatora przepisywania modów pod adresem http://www.generateit.net/mod-rewrite/

rozwiązania sieciowe oferują porady dotyczące umieszczenia php.ini w cgi-bin, aby umożliwić mod_rewrite

Aby użyć mod_rewrite, możesz wprowadzić w terminalu następujące polecenie:

$su$passwd ********** #a2enmod przepisz

Uruchom ponownie Apache2 po

# ponowne uruchomienie usługi Apache2 # ponowne uruchomienie /etc/init.d/apache2

# ponowne uruchomienie usługi Apache2

Tylko informacja dla osób obsługujących mod_rewrite na Debianie z Apache2:

Aby sprawdzić, czy mod_rewrite jest włączony:

Ls /etc/apache2/mods-enabled | grep przepisz

Jeśli wyświetli się rewrite.load, moduł jest włączony. (Uwaga: Twoja ścieżka do Apache2 może nie być /etc/, chociaż prawdopodobnie tak będzie.)

Aby włączyć mod_rewrite, jeśli jeszcze tego nie zrobiono :

Przepisanie A2enmod

Załaduj ponownie wszystkie pliki konfiguracyjne Apache.

andrzej

2015-02-13T11:59:58+00:00

2018-03-02T04:50:41+00:00

42066

W artykule opisuję logikę reguły RewriteRule oraz składnię niektórych dyrektyw modułu mod_rewrite serwera Apache. Podkreśliłem i podsumowałem także kilka wniosków i postulatów, które moim zdaniem należy poznać i zrozumieć korzystając z tego modułu. Mam nadzieję, że to wszystko pozwoli Wam, tak jak mi wcześniej, zrozumieć działanie tego modułu, który zapewnia potężną funkcjonalność umożliwiającą wykonywanie różnorodnych przekształceń na adresach URL.

Nie zapomnij o wyrażeniu regularnym tarcza symbole usług. Czasami zapominają o ucieczce od kropki, która powinna zachowywać się dokładnie jak kropka, a nie, jak to jest w zwyczaju w wyrażeniach regularnych, jak dowolny znak.

Nie zapomnij także zawinąć całego bloku reguł dla mod_rewrite w tagu:

Nie pisz zbyt wielu dyrektyw dla mod_rewrite, napisz tylko te reguły transformacji, których naprawdę potrzebujesz. Szczególnie trzeba uważać na przekierowania zewnętrzne - są to przekierowania, które realizowane są poprzez wysłanie klientowi nagłówka serwera z kodem NIE 200 (zwracając całą stronę), ale z innym kodem (najczęściej 301 I 302 ) i które prowadzą do przekierowania w przeglądarce Klienta na inny adres URL tj. aby złożyć nowe żądanie do klienta. Dlatego każde przekierowanie zewnętrzne zawsze prowadzi do straty czasu w przetwarzaniu żądania, ponieważ musisz wysłać odpowiedź do klienta, on musi ją przeczytać i powtórzyć żądanie, używając nowego adresu URL. Jest to czasochłonna procedura. Dlatego przekierowań należy używać tylko wtedy, gdy naprawdę ich potrzebujesz.

Należy pamiętać, że przeglądarki mogą Pamięć podręczna przekierowuje, podczas gdy Ctrl+F5 Lub Ctrl+R nie rozwiązuje problemu. Więc wyłącz to buforowanie w przeglądarce podczas testowania reguł przepisać moduł sieć serwery Apacz.

Aby znaleźć błędy w swoich regułach, przeczytaj logi Apacz.

Nie kopiuj i nie wklejaj głupio dyrektyw z różnych artykułów w Internecie do plików konfiguracyjnych Apache. Artykuły piszą ludzie, dlatego możliwe jest błędne pisanie dyrektyw, a jeśli weźmiemy pod uwagę, że metoda pisania artykułów wiąże się również z aktywnym użyciem kopiuj-wklej, wówczas błędy mogą się rozprzestrzeniać i mnożyć. Używaj artykułów jedynie jako odniesienia i wprowadzaj wytyczne z podręczników do plików konfiguracyjnych. Chociaż to również nie gwarantuje stu procent błędów, przynajmniej je zminimalizujesz.

W tym artykule opisałem tylko dwie dyrektywy i główne moim zdaniem koncepcje. Jednakże, jak sam rozumiesz, mod_rewrite zapewnia wiele innych dyrektyw i funkcjonalności.

Ten moduł serwera WWW Apache przeznaczony jest do konwersji źródłowych adresów URL. Jego możliwości są ogromne, ale często wykorzystuje się go do tworzenia HUR (URL czytelny dla człowieka). Co to oznacza? Użyj http://example.com/2005/ 12/ zamiast 31/theme.html Mechanizm ten jest bardzo często stosowany w serwisach informacyjnych.Jednocześnie jest to plus pod względem bezpieczeństwa.Użytkownicy nie widzą, który plik (skrypt) jest aktualnie używany.

Przyjrzyjmy się kilku pytaniom poniżej:
1. Jak włączyć mod_rewrite na Apache?
2. Trochę teorii. Jak działa mod_rewrite.
3. Prosty przykład.
4. Co należy zrobić w skrypcie?
5. Co zapewnia to podejście i ogólnie mod_rewrite?
6. Możliwe błędy.
7. Alma Mater do studiowania mod_rewrite

1. Jak włączyć mod_rewrite na Apache?

Aby włączyć mod_rewrite na serwerze WWW Apache, musisz edytować plik httpd.conf.
W tym celu otwórz plik httpd.conf i poszukaj linii:

Kod
#LoadModule moduły rewrite_module/mod_rewrite.so

I usuń komentarz

Kod
LoadModule moduły rewrite_module/mod_rewrite.so

Następnie ponownie uruchamiamy serwer WWW.

2. Trochę teorii. Jak działa mod_rewrite.

Z reguły programiści, którzy właśnie zetknęli się z mod_rewrite, nie do końca rozumieją, jak działa ten mechanizm. Z tego powodu od dawna głowią się nad „błędami z dzieciństwa”.

Więc. Jak wiemy istnieje tzw. żądanie GET, czyli. http://example.com/2005/12/31/theme.html, który „przychodzi” do serwera WWW (w naszym przykładzie - Apache). Co robi serwer? Przede wszystkim patrzy na ustawienia tego hosta. Po czym decyduje, co dalej. Albo odeślij użytkownikowi zawartość strony głównej (na przykład indeks.html), albo wyślij kod głównego skryptu indeks.php do interpretacji, albo zwróć błąd 404 itp. itd. Załóżmy, że będziemy kontynuować pracę z plikiem Index.phtml. Prawdopodobnie już wiesz, co stanie się dalej. Skupimy się na momencie, w którym serwer sprawdza ustawienia hosta. Może ich być bardzo dużo. Ale bez wątpienia serwer próbuje znaleźć plik .htaccess w katalogu głównym. (Plik konfiguracyjny Apache w locie). To właśnie w tym pliku znajdują się reguły konwersji mod_rewrite (mogą się one również znajdować w httpd.conf). Te. Doprowadzam do tego, że konwersja URL odbywa się PRZED działaniem skryptów.

Algorytm jest następujący:
1. Serwer odbiera żądanie GET: http://example.com/2005/12/31/theme.html
2. Znajduje reguły konwersji mod_rewrite w .htaccess.
3. Transformuje.
4. Przekierowuje do pliku Index.phtml zgodnie z regułami konwersji.
5. Skrypt zaczyna działać.

3. Prosty przykład.

Wielu z Was widziało tę rzecz: http://example.com/2005/12/31/theme.html. Takie adresy są często wykorzystywane przez serwisy informacyjne. Naturalnie nie mają wszystkich tych folderów i plików HTML. Wszystkie dane przetwarzane są przez skrypt. Poniżej przyjrzymy się jednej z opcji takiej transformacji. Zaraz ci powiem. Opcji jest wiele, ja biorę tylko jeden konkretny przypadek, z którego sam korzystam i uważam go za najbardziej uniwersalny.

Kod
Przepisz silnik włączony
Opcje +Śledź łącza symboliczne
PrzepiszWarunek %(REQUEST_FILENAME) !-f
PrzepiszWarunek %(REQUEST_FILENAME) !-d
RewriteRule ^(.*)$ indeks.phtml

Spójrzmy na wszystko w porządku.
Dwa RewriteConds z rzędu to warunki, pomiędzy którymi występuje AND.
Te. Jeżeli żądany adres nie jest realnie istniejącym plikiem lub katalogiem, przenosimy go do pliku Index.phtml. Te. W ten sposób wdrożyliśmy, że nasze żądania http://example.com/2005/12/31/theme.html będą przetwarzane przez skrypt Index.phtml. Teraz całe pytanie brzmi: jak dowiedzieć się w skrypcie, że użytkownik żąda /2005/12/31/theme.html.

Mamy tu do czynienia z odstępstwem lirycznym. Kilka słów o RewrtiterRule. Dyrektywa uwzględnia parametr. Pierwszy (w naszym przypadku: ^(.*)$) to ciąg wyrażenia regularnego, który sprawdza, czy żądany adres (w naszym przypadku: /2005/12/31/theme.html) odpowiada wzorcowi (w naszym przypadku tak, tj. k. Wzór mówi: „dowolny znak 0 lub więcej razy” od początku do końca linii - ^(.*)$). Jeżeli wzorzec jest spełniony, mod_rewrite przekierowuje żądanie do pliku określonego w drugim parametrze (w naszym przypadku: indeks.phtml).

Teraz całe pytanie brzmi, skąd skrypt wie o „/2005/12/31/theme.html”. Istnieją dwie opcje.
Pierwszy:

Kod
RewriteRule ^(.*)$ indeks.phtml?$1 [L]

Gdzie „/2005/12/31/theme.html” zostanie przekazany do skryptu Index.phtml w zmiennej QUERY_STRING, ponieważ $1 to pierwszy nawias we wzorcu, co byłoby równoznaczne z: http://example.com/?/2005/12/31/theme.html. Ale widziałeś to gdzieś? NIE. Dlatego używamy QSA jako klucza.

Istnieje zmienna serwerowa (do której mają dostęp skrypty) REQUEST_URI, która zawsze zawiera żądanie GET („/2005/12/31/theme.html”). Jeśli więc przekierujemy do pliku indeks.phtml, wówczas REQUEST_URI powinno otrzymać wartość indeksu.phtml, ALE klucz QSA zastępuje go „/2005/12/31/theme.html”. Te. fizycznie przekierowujemy do pliku Index.phtml i logicznie pokazujemy skrypt, do którego użytkownik uzyskał dostęp „/2005/12/31/theme.html”.

4. Wykonanie scenariusza

Teraz pracujemy już ze skryptem Index.phtml, do którego przekierowaliśmy. Od razu powiem, kod jest w PHP, bo... Nie mówię dobrze w innych językach internetowych.

To takie proste. Teraz możesz pracować z tą tablicą. Żeby było jeszcze jaśniej. Podam analogię. Załóżmy, że jest to adres: http://example.com/index.phtml?year=2005&m...y=31&news=theme . Jak wiemy w skrypcie parametry te będą dostępne poprzez tablicę $_GET.
więc $_GET['rok'] jest takie samo jak $arr, $_GET['miesiąc'] jest takie samo jak $arr, $_GET['dzień'] jest takie samo jak $arr, $_GET ['motyw' ] jest takie samo jak $arr (musisz tylko odciąć „.html”).

5. Co zapewnia to podejście i ogólnie mod_rewrite?

Po pierwsze, adres URL taki jak: http://example.com/?/2005/12/31/theme.html jest znacznie przyjemniejszy dla wyszukiwarek niż http://example.com/index.phtml?year=2005&m.. y=31&news=theme i użytkownicy również się zgodzą.

Drugi punkt. Dzięki mod_rewrite możliwość ataku XSS jest zredukowana prawie do zera, ponieważ Błąd dołączania został praktycznie pokryty. Na tym przykładzie nie jest to tak widoczne, ale wierz mi na słowo, tak jest. ALE w każdym razie wszystko zależy od Twojej głowy!!!

Trzeci punkt to ukrycie faktycznie zastosowanej technologii. Częściowo utrudnia to zhakowanie witryny, ale to tylko górna granica, jak błoto na stojącym stawie.

6. Możliwe błędy

Zwykle mogą wystąpić następujące błędy:

404 – nie znaleziono dokumentu. Przyczyna: RewriteRules nie są wyzwalane.
403 – Zabronione – odmowa dostępu. Reguły przepisywania zawierają błąd logiczny powstający w wyniku próby przekierowania do pliku, do którego nie ma dostępu (/index.php - poda dokładnie to, ponieważ / w systemach UNIX oznacza ścieżkę z katalogu głównego SERWERA, tam, gdzie naturalnie masz dostęp, nie będzie).
500 wewnętrzny błąd serwera. Powodem jest błąd składniowy w pliku .htaccess.

7. Alma Mater do studiowania mod_rewrite

Osobiście ten artykuł bardzo mi pomógł. Oto jej streszczenie, a poniżej załączam plik ZIP. Zawiera ten artykuł w formacie RTF,

Cytat
„Główną korzyścią, jaką daje mod_rewrite, jest konfigurowalność i elastyczność nieodłącznie związana z Sendmailem. Wadą mod_rewrite jest konfigurowalność i elastyczność nieodłącznie związana z Sendmailem.

Briana Behlendorfa

Grupa Apache
„Pomimo mnóstwa przykładów i dokumentacji mod_rewrite jest Voodoo. Cholernie fajne Voodoo, ale wciąż Voodoo.

Briana Moore'a
[e-mail chroniony]

Witamy w świecie mod_rewrite, szwajcarskiego scyzoryka do transformacji adresów URL!
Moduł ten wykorzystuje silnik oparty na regułach (parser oparty na wyrażeniach regularnych) do wykonywania transformacji adresów URL w locie. Obsługuje nieograniczoną liczbę reguł i nieograniczoną liczbę warunków związanych z regułami, aby wdrożyć naprawdę elastyczny i potężny mechanizm transformacji adresów URL. Konwersje adresów URL mogą zależeć od różnych kryteriów, takich jak zmienne serwera, zmienne środowiskowe, nagłówki HTTP, czas, a nawet zapytania do zewnętrznych baz danych w różnych formatach mogą zostać wykorzystane do uzyskania naprawdę dokładnych adresów URL konwersji zgodnych z Twoimi oczekiwaniami.

Moduł ten działa na pełnych adresach URL (łącznie z informacjami o ścieżce) zarówno w kontekście serwera (httpd.conf), jak i katalogu (.htaccess), w wyniku czego może nawet wygenerować części ciągu zapytania. Przekonwertowany wynik może skutkować wewnętrznym przetwarzaniem, zewnętrznym przekierowaniem żądań, a nawet przejściem przez wewnętrzny moduł proxy.

Jednak cała ta funkcjonalność i elastyczność ma wadę: złożoność. Nie spodziewaj się więc zrozumienia całego modułu w jeden dzień.
Moduł ten został wymyślony i napisany w kwietniu 1996 r. i przekazany wyłącznie firmie The Apache Group w lipcu 1997 r.

Ralf S. Engelschall
[e-mail chroniony]
www.engelschall.com

Moduł Mod Rewrite służy do przepisywania adresów URL w oparciu o reguły. W tym artykule wyjaśniono, jak włączyć obsługę przepisywania modów na serwerze WWW Apache w systemie operacyjnym Ubuntu.

Podłącz moduł przepisywania modów

Przejdź do katalogu /etc/apache2/mods-available i upewnij się, że znajduje się tam plik rewrite.load odpowiedzialny za załadowanie modułu Mod rewrite. Aby to zrobić, uruchom następujące polecenia w konsoli:

CD /etc/apache2/mods-available ls

Na liście plików powinien znajdować się plik o nazwie rewrite.load.

Przejdźmy teraz do katalogu /etc/apache2/mods-enabled i utwórzmy dowiązanie symboliczne do pliku rewrite.load. Aby to zrobić, uruchom polecenia:

Cd /etc/apache2/mods-enabled Sudo ln -s ../mods-available/rewrite.load rewrite.load

Zmiana ustawień hosta wirtualnego

Następnie należy zmienić ustawienia wirtualnego hosta, który powinien korzystać z modułu Mod rewrite. Aby to zrobić, musisz otworzyć plik ustawień dla konkretnego hosta. Weźmy na przykład standardowy plik /etc/apache2/sites-available/default, który zawiera ustawienia hosta o nazwie localhost. Uruchom następujące polecenie, aby otworzyć plik w edytorze GEdit:

Sudo gedit /etc/apache2/sites-available/crocodilus

Znajdź sekcję w pliku i zmień wiersz „AllowOverride None” na „AllowOverride All”. Powinno to wyglądać mniej więcej tak:

Opcje Indeksy FollowSymLinks MultiViews ZezwalajOverride All Kolejność Zezwól, odmów Zezwalaj wszystkim

Uruchom ponownie Apache'a

Teraz pozostaje tylko zrestartować serwer WWW Apache za pomocą polecenia.