2013-06-18 55 views
12

Korzystam z XAMPP, ale nie jestem w stanie użyć pliku .htaccess na lokalnym hoście. Próbuję wiele razy ... Online działa dobrze. ale miejscowy gospodarz pokazując [zapytaniu URL nie został odnaleziony na tym serwerze].htaccess nie działa na localhost z XAMPP

Mój Folder główny jest prawdziwe

localhost/acre/real/property_available.php 
localhost/acre/real/properties 


<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase /acre/real/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^properties$ /property_available.php/$1 [NC,QSA] 
</IfModule> 

Proszę

+0

Czy localhost jest oknem lub innym systemem? Korzystasz z wirtualnego hosta na serwerze lub dedykowanym komputerze? Czy plik httpd.conf działa również na localhost (np. Wszystkie inne cfg)? Wszelkie dane dziennika błędów zapisane na localhost? Podwójnie sprawdzono, czy informacje o ścieżce są poprawne (/prop....php)? –

+0

Korzystam z systemu Windows XP – acre

+0

Czy włączyłeś mod_rewrite i .htaccess? Jaki jest twój DocumentRoot? – anubhava

Odpowiedz

5

Nie widząc swój system trudno powiedzieć, co się stało, ale spróbuj następujące (odpowiedź na komentarz, jeśli te nie zadziałały, Z komunikatami o błędach dziennika)

[ZATRZYMAJ instancję serwera Apache. Upewnić się, że nie ucieka!]

1) przenieść serwer apache/zainstalować do folderu, który nie ma długich nazw plików i spacji

2) Sprawdź httpd.conf w instalacji folderze \ conf i szukać AccessFileName. Jeśli to .htaccess zmienić go w pliku okna NAME zaakceptuje (np conf.htaccess)

3) dwukrotnie sprawdzić, czy plik .htaccess dostaje przeczytać: dodać trochę nieinterpretowalną -tę śmieci do niego i rozpocząć serwera: należy uzyskać a Błąd 500. Jeśli tego nie zrobisz, plik nie zostanie odczytany, ponownie odwiedź plik httpd.conf (jeśli to wygląda OK, sprawdź, czy jest to jedyny plik, który definiuje htaccess i jego lokalizację, i czy działa w jednym miejscu - tylko w pliku - ; sprawdź także, czy oba pliki httpd.conf i htaccess są dostępne: niezaszyfrowane, prawa dostępu do plików nie są ograniczone, dysk/ścieżka dostępna - i brak długich ścieżek folderów i nazw plików -)
ZATRZYMAJ Apache ponownie, a następnie przejdź do:
4) Jeśli masz zbyt IIS w systemie, zatrzymać ją (go odinstalować zbyt jeśli można) od services.msc

5) dodać następujące górze ważnego pliku .htaccess:
RewriteEngine on
RewriteLog "/path/logs/rewrite.log" # Upewnij się, że ścieżka jest tam!
RewriteLogLevel 9

6) opróżnić [apache] \ logs folderu (jeśli używasz innego folderu, a następnie, że jeden :)

7) Sprawdzić następujące wpisy są ustawiane i popraw:
aplikacja Akcja/x -httpd-php "C: /your-php5-path/php-cgi.exe"
LoadModule php5_module "C: /your-php5-path/php5apache2.dll" moduły
LoadModule rewrite_module/mod_rewrite.so
Unikaj długich nazw ścieżek i spacji w nazwach folderów, aby zainstalować phpX!

8) Uruchom serwer Apache

Można zrobić wszystkie powyższe kroki lub wybrać jeden po drugim, połączenie. Ale na koniec dnia upewnij się, że wypróbowałeś wszystko powyżej!
Jeśli system nadal wieje i nie można go naprawić, skopiuj komunikat o błędzie & pasty (ów) z folderu dziennika w celu uzyskania pomocy

32

prostu miał podobny problem

rozwiązane poprzez sprawdzenie w httpd.conf

 # 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 All <--- make sure this is not set to "None" 

Warto pamiętać, że wypróbowałem (z odpowiedzi Marka) "umieścić śmieci w pliku .htaccess", co spowodowało błąd serwera - ale mimo że było czytane, nie działało to z powodu aby nie było dozwolonych przesłonięć.

+0

Mam również ten problem, ale nie mogę znaleźć pliku http.conf w dowolnym miejscu. Czy zdecydowanie powinienem mieć jeden? – RGriffiths

+0

Myślę, że powinieneś być tworzony podczas domyślnej instalacji. Zauważ, że to httpd.conf – TimP

+0

Dzięki - znalazłeś. Dostęp przez panel sterowania Xampp. Szukałem c:/..... ścieżki itp. – RGriffiths

6

Spróbuj

<IfModule mod_rewrite.so> 
... 
... 
... 
</IfModule> 

zamiast <IfModule mod_rewrite.c>

+0

Zapisałeś mi dzięki koleś :) –

15

W conf/extra/httpd-vhosts.conf, dodać linię AllowOverride All dla wszystkich stron, które mają problem z

<VirtualHost example.site:80> 
    # rest of the stuff 
    <Directory "c:\Projects\example.site"> 
     Require all granted 
     AllowOverride All <-----This line is required 
    </Directory> 
</VirtualHost> 
+0

Rozwiązało to mój problem .htaccess na wirtualnym hoście. Nie widziałem tego rozwiązania nigdzie indziej. Dziękuję Ci! – nunzabar

+0

To zadziałało idealnie dla mnie, dzięki! –

0

Miałem podobny problem. Ale problem był w nazwie pliku ".htaccess", ponieważ system Windows nie pozwala, aby nazwa pliku zaczynała się od ".", Rozwiązaniem była zmiana nazwy pliku za pomocą polecenia CMD. "zmień nazwę c: \ xampp \ htdocs \ htaccess.txt .htaccess"

+1

Zawsze możesz także utworzyć dowolny plik, który zaczyna się kropką w oknach, dodając kropkę do nazwy pliku ... Stwórz plik jako '.htaccess. ', A okna usuwają dołączony okres i kończysz na' .htaccess ' – Precastic

Powiązane problemy