mod_rewrite jest włączony, ale nie działa


17

Próbuję skonfigurować bibliotekę routingu PHP. Podają ten przykład dla pliku .htaccess:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]

Nie mogłem tego uruchomić, więc spróbowałem włączyć mod_rewrite, ale napisano: „Przepisywanie modułów już włączone”.

Dlaczego nie działa poprawnie? Dzięki! Używam Ubuntu Precise 12.04 i apache2.2.22. (Sprawdzone pod kątem wszelkich aktualizacji)

EDYCJA: Jeszcze kilka szczegółów, to błędna kompilacja PuPHPet, przepisywanie powinno być włączone.

Odpowiedzi:


33

Musisz zezwolić na zastąpienie.

<Directory "/path/to/document/root/">
  AllowOverride All
  Allow from All
</Directory>

5
Jest to niepotrzebnie liberalne. Tylko AllowOverridejest to konieczne dla konfiguracji w pytaniu. Allow from Allnie ma nic wspólnego z pytaniem i może nie być odpowiednie dla środowiska @ randomdev.
Mark

1
<Directory "/path/to/document/root/">Zapomniałem przejść /path/to/document/root/do katalogu głównego projektu. Dzięki!
Abhishek,

16

Po pierwsze, ustaw konfigurację httpd na tę (ścieżka może się różnić. W moim Ubuntu jest ona umieszczona w / etc / apache2 / sites-available / default):

DocumentRoot /var/www

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

Następnie należy włączyć mod_rewrite za pomocą tego polecenia:

sudo a2enmod rewrite

Ostatnim uruchom ponownie usługę apache :

sudo service apache2 restart

Aby to sprawdzić, możesz to sprawdzić ponownie w phpinfo w Konfiguracja> apache2handler> Załadowane moduły muszą być zapisane, mod_rewriteco oznacza, że ​​mod_rewrite jest włączony.


Czy powinien to być wirtualny element hosta?
jjxtra

Przykład możesz zobaczyć w Apache Virtual Host Example
metamorph

1

Miałem podobny problem, ale inne odpowiedzi mi nie pomogły. Ta linia na początku .htaccessrozwiązała mój problem:

Options +FollowSymLinks -MultiViews
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.