riscrivere il nome della cartella usando .htaccess
Domanda
Mi chiedo che scendessimo è possibile utilizzare .htaccess
per riscrivere il nome della cartella.
Quello che voglio dire è questo.
Diciamo che ho un URL del tipo:
www.site.com/folder1/page.php
Ora voglio riscrivere l'url per (ad esempio)
www.site.com/apple/page.php
Il cartella1 è una cartella esistente sul mio spazio web.
importante: la "mela" non è una cartella piuttosto solo un nome
!L'approvazione qui è un passo per passo piano:
- Tipi di utente
www.site.com/folder1/login.php
- L'URL deve riscrivere e non reindirizzare l'URL
www.site.com/apple/login.php
Questo significa che apple
è solo un nome e non una directory. Tutto il codice deve solo venire da cartella1. Acutally Apple dovrebbe essere solo un alias per folder1
. Non posso rinominare folder1
a Apple
. Perciò vorrei solo riscrivere folder1
a apple
.
Soluzione
mod_rewrite può riscrivere solo / reindirizzamento richiesto URI. Così si avrebbe bisogno di richiedere /apple/…
per farlo riscritto per un corrispondente /folder1/…
.
Prova questo:
RewriteEngine on
RewriteRule ^apple/(.*) folder1/$1
Questa regola riscrivere ogni richiesta che inizia con il percorso /apple/…
URI internamente per /folder1/…
.
Modifica Come si sta in realtà cercando il contrario:
RewriteCond %{THE_REQUEST} ^GET\ /folder1/
RewriteRule ^folder1/(.*) /apple/$1 [L,R=301]
Questa regola è progettato per lavorare insieme con l'altra regola di cui sopra. Richieste di /folder1/…
verranno reindirizzati all'esterno /apple/…
e richieste di /apple/…
saranno poi riscritti internamente ritorna /folder1/…
.
Altri suggerimenti
Prova:
RewriteRule ^/apple(.*)?$ /folder1$1 [NC]
Se la cartella che si desidera visualizzare l'url è nella prima parte della dichiarazione - questo è ciò che corrisponderà contro e la seconda parte 'riscrive' alla vostra cartella esistente. la [NC] bandiera significa che ignorerà le differenze di caso per esempio di Apple / sarà ancora in avanti.
Vedi qui per un tutorial: http://www.sitepoint.com/ articolo / guida-url-rewriting /
C'è anche un programma di utilità di prova piacevole per le finestre è possibile scaricare da qui: http://www.helicontech.com/download/rxtest.zip Solo per notare per il tester è necessario lasciare fuori il nome di dominio - in modo che il test sarebbe contro /folder1/login.php
per reindirizzare da / folder1 a / apple provare questo:
RewriteRule ^/folder1(.*)?$ /apple$1 [R]
per reindirizzare e quindi riscrivere solo combinare il sopra nel file .htaccess:
RewriteRule ^/folder1(.*)?$ /apple$1 [R]
RewriteRule ^/apple(.*)?$ /folder1$1 [NC]