Jak mogę włączyć mod_rewrite w apache na Ubuntu?

13

Jak włączyć mod_rewrite z Apache w Ubuntu 10.04?

Próbowałem kopiować rewrite.loadod /etc/apache2/mods-availabledo, etc/apache2/mods-enabledale to nie działało.

Nathan Osman
źródło

Odpowiedzi:

20

Spróbuj tego sudo a2enmod rewrite:, a następnie uruchom ponownie apache.

Rwky
źródło
4

Odpowiedź Obsidiana na użycie a2enmod jest właściwym rozwiązaniem. Metoda andola działałaby, ale może się zepsuć przy aktualizacji. To, co robi a2enmod, to po prostu utworzyć dowiązanie symboliczne, więc następujące dwa są tym samym, oba poprawnym rozwiązaniem:

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

lub

  a2enmod rewrite

Jednak a2enmod będzie szukał innych typów plików, niektóre mają .conf i prawdopodobnie inne. Nie ma powodu, aby nie uczyć się tego polecenia, choć ważne jest, aby wiedzieć, co dzieje się w tle.

Skopiowanie pliku sprawi, że każdy przyszły administrator będzie bardzo niezadowolony z twojej strony. :)

Justin Alan Ryan
źródło
Cóż, to tylko do testów lokalnych, więc nic wielkiego. Ale i a2enmodtak jest po prostu łatwiejsze.
Nathan Osman,
2

W rzeczywistości, będąc rodzajem złego rozwiązania, kopiowanie rewrite.load z ./mods-available/ do ./mods-enabled/ powinno działać. Czy pamiętasz, aby później ponownie uruchomić apache?

W każdym razie ./mods-enabled/ powinien zwykle zawierać dowiązania symboliczne do odpowiednich plików w ./mods-available/ . Jest to, jak wspomniano w Obsidian, najłatwiej obsługiwane przez polecenia a2enmod i a2dismod.

Oprócz włączenia modułu będziesz musiał także aktywować przepisywanie. Zanim będzie można napisać RewriteCond : si RewriteRule : s, musi istnieć „ RewriteEngine On ” w tym kontekście konfiguracji.

andol
źródło
To też działa. Pamiętaj tylko, aby ustawić odpowiednie uprawnienia do dowiązań symbolicznych w włączonych modach ... w przeciwnym razie będziesz wyciągał włosy.
Nathan Osman,