2013-01-23 5 views
8

OK, ho un server di localhost Apache attivo e funzionante con PHP e MySql. Ora voglio essere in grado di utilizzare un file .htaccess e utilizzare RewriteRule, ma sono in perdita dove metterlo.Usa il file .htaccess su un server localhost apache

devo queste directory:

C:\dev\progs in cui sono memorizzati Apache PHP e MySQL, ciascuna nelle proprie sotto-directory, vale a dire. C:\dev\progs\Apache e così via ...

C:\dev\www dove sono memorizzati tutti i file del sito.

Ho bisogno di sapere dove mettere il file .htaccess, quale configurazione devo fare, e se quello che sono le mie speranze e i miei sogni sono tutto per niente.

Grazie

+0

Ho pensato che la configurazione '.htaccess' non dovrebbe essere utilizzata se si ha accesso al file di configurazione del server, che in questo caso si fa. – SeinopSys

+0

sì, ne ho sentito parlare anche io, trovo il file di configurazione un po 'confuso. Posso anche trovare molti altri tutorial sui file '.htaccess'. – KFox

risposta

10

.htaccess è un file di configurazione che devono essere conservati in cui la pagina è. In breve, dovrebbe essere nel c:\dev\www nel tuo caso, ma dovresti leggere anche this. BTW non dimenticate di accendere mod_rewrite eliminando un hash dalla linea in cui risiede

LoadModule rewrite_module modules/mod_rewrite.so 

e attivare .htaccess, cambiando

AllowOverride None 

a

AllowOverride All 
1

Si posiziona .htaccess file nella directory web che vuoi che il codice controlli (e qualsiasi sottodirectory). Per un riscrittura, normalmente va nella directory principale e agisce sulla pagina index.php.

Ad esempio, se si mette il file .htaccess in \ dev \ www \ directory, e il file .htaccess ha qualcosa come RewriteRule ^(.*)$ /index.php?/$1 [L] questa è un'espressione regolare che sta dicendo ottenere tutti i personaggi del URL e li aggiunge allo script /index.php? . Lo /$1 è un riferimento posteriore nell'espressione regolare.

12

Abilita .htaccess su server Apache in 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

Risposta molto più chiara, grazie! –

0

Try This.

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