Chcę ustawić, AllowOverride all
ale nie wiem, jak to zrobić. Znalazłem następujący kod, przeszukując google i wklejając go .htaccess
:
<Directory>
AllowOverride All
</Directory>
Ale po wklejeniu zacząłem otrzymywać "Internal Server Error"
Czy ktoś może mi pomóc, gdzie umieścić ten kod lub jak to zrobić?
<Directory>
Dyrektywa wymaga argumentu ścieżki.Odpowiedzi:
Jeśli korzystasz z Ubuntu, edytuj plik
/etc/apache2/apache2.conf
(tutaj mamy przykład/var/www
):i zmień to na;
następnie,
Konieczne może być również
sudo a2enmod rewrite
włączenie przepisywania modułu.źródło
sudo a2enmod rewrite
, wtedy zadziałało. W systemie Ubuntu 14.04 LTS. Mam nadzieję, że komuś się przyda.IncludeOptional conf-enabled/*.conf
w ostatnim wierszu mojegoapache2.conf
pliku znajduje się. Ale wydaje się, żeapache2.conf
zamiast tego jest traktowany priorytetowo.Głównym celem
AllowOverride
menedżera głównych plików konfiguracyjnych Apache (tego znajdującego się w / etc / apache2 / głównie) jest decydowanie, która część konfiguracji może być dynamicznie zmieniana przez aplikacje na podstawie ścieżki.Jeśli nie jesteś administratorem serwera, jesteś zależny od poziomu AllowOverride, na który ci administratorzy zezwalają. Aby mogli uniemożliwić zmianę niektórych ważnych ustawień zabezpieczeń;
Jeśli jesteś głównym menedżerem konfiguracji Apache, powinieneś zawsze używać
AllowOverride None
i przenosić wszystkie znalezione przykłady oparte na google_based, oparte na plikach .htaccess, doDirectory
sekcji w głównych plikach konfiguracyjnych. Ponieważ zawartość.htaccess
pliku .htaccess/my/path/to/a/directory
jest taka sama jak<Directory /my/path/to/a/directory>
instrukcja, z tym wyjątkiem, że.htaccess
dynamiczna zmiana konfiguracji na żądanie HTTP spowalnia Twój serwer WWW. Zawsze preferuj konfigurację statyczną bez.htaccess
sprawdzania (unikniesz również ataków na bezpieczeństwo poprzez.htaccess
modyfikacje).Nawiasem mówiąc, w twoim przykładzie używasz
<Directory>
i zawsze będzie to błędne, instrukcje katalogu zawsze zawierają ścieżkę, na przykład<Directory />
lub<Directory C:>
lub<Directory /my/path/to/a/directory>
. I oczywiście nie można tego umieścić w a,.htaccess
ponieważ a.htaccess
jest jak instrukcja Directory, ale w pliku obecnym w tym katalogu. Oczywiście nie można zmieniaćAllowOverride
w sposób.htaccess
jak ta instrukcja jest zarządzanie poziom zabezpieczeń z.htaccess
plików.źródło
Idź do
your_severpath/apache_ver/conf/
Otwórz plikhttpd.conf
w Notatniku.Znajdź tę linię:
Usuń symbol krzyżyka:
Następnie idź do
<Directory />
i zmień na:
Następnie zrestartuj lokalny serwer.
źródło
Order allow,deny
iAllow from all
są przeznaczone dla Apache 2.2 i wcześniejszych. W Apache 2.4 te dwie linie są zastępowane przez,Require all granted
jak pokazano w innych odpowiedziach.W systemie Linux, aby zwolnić dostęp do katalogu głównego dokumentu, należy edytować następujący plik:
W zależności od poziomu katalogu, do którego chcesz zwolnić dostęp, musisz zmienić dyrektywę
do
Więc zakładając, że chcesz zezwolić na dostęp do plików w katalogu / var / www / html, powinieneś zmienić następujące wiersze z:
do
źródło
Jeśli używasz Linuksa, możesz edytować kod w katalogu
teraz tutaj znajdź linię kodu podobną do
Zmień AllowOveride None na AllowOveride All
Teraz możesz ustawić dowolną regułę w swoim pliku .httacess w swoich katalogach, jeśli inny system operacyjny po prostu spróbuje znaleźć plik httpd.conf i go edytować.
źródło
now here fine the code line kinda like # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit # AllowOverride None # # Controls who can get stuff from this server. #Sep 11, 2013 apache - How to Set AllowOverride all - Stack Overflow stackoverflow.com/questions/18740419/how-to-set-allowoverride-all
Myślę, że chcesz ustawić to w swoim
httpd.conf
pliku zamiast w.htaccess
pliku.Nie jestem pewien, jakiego systemu operacyjnego używasz, ale ten link do Ubuntu może dać ci kilka wskazówek, co robić.
https://help.ubuntu.com/community/EnablingUseOfApacheHtaccessFiles
źródło
Jak wyjaśnili tu inni użytkownicy o zastosowaniu dyrektywy allowoveride, która jest używana do nadawania uprawnień do używania .htaccess. jedną rzeczą, na którą chcę zwrócić uwagę, jest to, że nigdy nie używaj allowoverride all, jeśli inni użytkownicy mają dostęp do zapisu .htaccess, zamiast tego użyj allowoveride, aby zezwolić na określone moduły.
Takich jak
AllowOverride AuthConfig mod_rewrite
ZamiastPonieważ moduł taki jak mod_mime może renderować pliki po stronie serwera jako zwykły tekst.
źródło
Również napotykam ten problem i znalazłem rozwiązanie w 2 krokach poniżej: 1. W folderze z włączoną obsługą witryn w apache2 edytujesz w elemencie Directory ustawiając „AllowOverride all” (powinno być „all”, a nie „none”) 2. W projekcie kohana w folderze www zmień nazwę „example.htaccess” na „.htaccess”
Zrobiłem to na ubuntu. Mam nadzieję, że to ci pomoże.
źródło
SuSE Linux Enterprise Server
Upewnij się, że edytujesz właściwy plik https://www.suse.com/documentation/sles11/book_sle_admin/data/sec_apache2_configuration.html
W takim przypadku
vhosts.d/*.conf
należy je edytowaćźródło
Poza tym te poprawne odpowiedzi, które zostały zatwierdzone, czasami mogą być widoczne ten sam błąd z powodu niedopasowanych i różnych ustawień w
SSL
części konfiguracji serwera internetowego . (Oczywiście, gdy nie używasz.htaccess
pliku).źródło