Wewnętrzny błąd serwera - htaccess

84

Mam plik htaccess, który działa idealnie na hoście, ale kiedy umieszczam go na lokalnym, pokazuje mi ten błąd:

Wewnętrzny błąd serwera

Serwer napotkał błąd wewnętrzny lub błędną konfigurację i nie mógł zrealizować Twojego żądania.

Skontaktuj się z administratorem serwera, admin @ localhost i poinformuj ich o czasie wystąpienia błędu oraz o wszystkim, co mogłeś zrobić, co mogło spowodować błąd.

Więcej informacji o tym błędzie może być dostępnych w dzienniku błędów serwera.

Znalazłem ten alert w pliku dziennika błędów:

[Wt 17 kwietnia 10:02:25 2012] [alert] [klient 127.0.0.1] D: /wamp/www/jivan/sql/.htaccess: Niepoprawne polecenie „Nagłówek”, prawdopodobnie błędnie wpisane lub zdefiniowane przez moduł nieuwzględniony w konfiguracja serwera

to jest mój kod pliku htaccess:

  RewriteEngine On
AddDefaultCharset utf-8
RewriteRule ^([0-9-]+)/keyword_show.html$ keyword_show.php?keyword_id=$1
RewriteRule ^page_(.*).html$  page.php?url=$1
RewriteRule ^([0-9-]+)/(.*)/(.*)/(.*).html$ $2.php?advertisement_cat=$1&id=$3&pagenumber=$4
RewriteRule ^([0-9-]+)/(.*)/(.*).html$ $2.php?advertisement_cat=$1&pagenumber=$3
RewriteRule ^([0-9-]+)/(.*).html$ $2.php?advertisement_cat=$1
# cache images and flash content for one month
<FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf)$">
Header set Cache-Control "max-age=2592000"
</FilesMatch>

# cache text, css, and javascript files for one month
<FilesMatch ".(js|css|pdf|txt)$">
Header set Cache-Control "max-age=2592000"
</FilesMatch>

mój lokalny serwer obsługiwany przez wampa i włączyłem również moduł przepisywania !!!

więc o co chodzi? !!

afsan
źródło

Odpowiedzi:

129

Headerdyrektywa jest w mod_headersmoduł Apache. Musisz upewnić się, że moduł jest załadowany do serwera Apache.

Michael Slade
źródło
8
Dzięki ... jest nazwany jako headers_module na liście modułów :)
Saidulu Buchhala
3
Dla leniwych po prostu zrób: <IfModule headers_module> ... </IfModule>
AntonioCS
98

Kroki, aby włączyć moduły HEADERS

$ cd /etc/apache2/mods-available
$ sudo a2enmod headers
$ /etc/init.d/apache2 restart
Allahbakash.G
źródło
6
Może to być jedna linijka: sudo a2enmod headers && sudo service apache2 restart(powinno działać na dystrybucjach opartych na Debianie).
Amal Murali
To powinna być prawidłowa odpowiedź, dziękuję!
RafaelB13
33

W linii poleceń:

Zainstaluj mod_headers

sudo a2enmod headers

a następnie uruchom ponownie Apache

service apache2 restart
totas
źródło
12

Spróbuj tego:

<IfModule mod_headers.c> Header set [your_options] </IfModule>

Czy uruchomiłeś ponownie WAMP po zainstalowaniu / włączeniu?

Scott
źródło
6

Na maszynie Ubuntu / Debian możesz po prostu uruchomić to polecenie:

sudo ln -s /etc/apache2/mods-available/headers.load /etc/apache2/mods-enabled/

i powinien być ustawiony .....

Amir Koklan
źródło
0

Ta odpowiedź mi pasuje

<IfModule mod_headers.c> Header set [your_options] </IfModule>
ashrafweb
źródło