Mój problem polega na tym, że mój plik .htaccess
na moim lokalnym serwerze nie jest czytany. Ustawienia w pliku VirtualHost
wydają się mieć zawsze pierwszeństwo.Jak uzyskać pliki .htaccess współpracujące z Apache VirtualHost
Próbowałem następujące:
- Włączone
mod_rewrite
- Zmieniono
AllowOverride
doAll
ale powoduje toHTTP Error 500 Internal server error
. Próbowałem go z różnymi opcjami, ale zawsze powoduje błąd 500.
używam plik VirtualHost na Ubuntu, który wygląda tak:
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /web/website
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /web/website>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>
W moim pliku .htaccess
pod /web/website
Mam następujące zasady (które nie są odczytywane):
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/$1 [L]
RewriteCond %{HTTP_USER_AGENT} ^facebookexternalhit
RewriteRule ^(.*)$ ogtags.php?$1 [L,QSA]
ErrorDocument 404 /404
ErrorDocument 401 /401
Jedną rzeczą, której próbowałem, było dołączenie tych reguł bezpośrednio do pliku VirtualHost, ale chciałbym, aby mój plik .htaccess
zadziałał! Czy to takie wielkie pytanie? :(
Edycja:..? Więc spojrzał w moim apache error.log
i mówi Invalid command 'Action', perhaps misspelled or defined by a module not included in the server configuration
odnosząc się do mojego pliku .htaccess
Nie wydaje się być w moduł Action które można włączyć jakieś pomysły
Edit 2: zauważyłem, że mój plik httpd.conf
jest puste Gdyby ta sprawa ponieważ używam VirtualHost
plików
Próbowałem skomentować te zasady, ale nie wygląda na to, że były przyczyną problemu. Jakieś inne sugestie? Myślę, że masz rację, to musi być jedna z tych zasad, które są złe. Próbowałem nawet komentować wszystkie zasady i znowu nie miało to żadnego skutku! Więc nie wiem, co jeszcze spróbować! –
Hmm, ale te zasady działają dobrze na serwerze na żywo, w tym na 404. Tak więc musi być coś innego w mojej lokalnej konfiguracji apache, która jest zła. –
'' httpd.conf'' ma na celu dodanie konfiguracji użytkownika i jest zawarty w pliku '' apache2.conf''. Domyślnie jest puste. – cyberhicham