2013-01-23 14 views
8

W porządku, mam serwer lokalny Apache uruchomiony z PHP i MySql. Teraz chcę móc również użyć pliku .htaccess, aby użyć RewriteRule, ale nie mam gdzie go umieścić.Użyj pliku .htaccess na serwerze localhost apache

mam te katalogi:

C:\dev\progs gdzie Apache PHP i MySQL są przechowywane, każdy we własnych podkatalogów, tj. C:\dev\progs\Apache i tak dalej ...

C:\dev\www gdzie przechowywane są wszystkie pliki witryny.

Muszę wiedzieć, gdzie umieścić plik .htaccess, jaką konfigurację muszę wykonać, a jeśli to, czym jestem, moje nadzieje i marzenia są na nic.

Dzięki

+0

Myślałem, że '.htaccess' config nie powinien być używany, jeśli masz dostęp do pliku konfiguracyjnego serwera, co w tym przypadku robisz. – SeinopSys

+0

tak, też o tym słyszałem, po prostu uważam, że plik konfiguracyjny jest trochę zagmatwany. Mogę również znaleźć o wiele więcej samouczków na temat plików .htaccess. – KFox

Odpowiedz

10

.htaccess jest plikiem konfiguracyjnym, które powinny być przechowywane w którym strona jest. Krótko mówiąc, powinno to być w twoim przypadku c:\dev\www, ale powinieneś przeczytać także: this. BTW nie zapomnij włączyć mod_rewrite przez usunięcie skrótu z linii, gdzie rezyduje

LoadModule rewrite_module modules/mod_rewrite.so 

i umożliwić .htaccess zmieniając

AllowOverride None 

do

AllowOverride All 
1

umieścić .htaccess plik w katalogu sieciowym, który ma kontrolować kod (i wszelkie podkatalogi). W przypadku Rewrite zazwyczaj wchodzi w katalog główny i działa na stronie index.php.

Na przykład, jeśli umieścisz plik .htaccess w \ dev \ www \ katalogu i plik .htaccess ma coś podobnego RewriteRule ^(.*)$ /index.php?/$1 [L] to jest wyrażenie regularne, że mówi się wszystkie znaki w adresie URL i dołączyć je do skryptu /index.php? . /$1 jest odnośnikiem w regex.

12

Włącz .htaccess na serwerach apache w localhost

1) Find your apache directly which uses the php installation . 
2) Open your httpd.conf with notepad, Which is located in the path \apache\conf directory 
3) Find the code like below  
     #LoadModule rewrite_module modules/mod_rewrite.so 
4) Remove # from above code 


# 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" 


5) Save httpd.conf file 
6) Restart your apache server 
+1

Znacznie wyraźniejsza odpowiedź, dzięki! –

0

spróbować.

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase /projectfolder/ 
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /projectfolder/index.php [L] 
</IfModule> 
Powiązane problemy