2015-02-03 22 views
5

Voglio reindirizzare un URL a un altro senza cambiare l'URL del browserRedirect Senza cambiare URL Apache

www.example.com/abc/(.*).xml dovrebbe reindirizzare a www.example.com/abc/ ? xyz/index.htm del file = $ 1

ma il browser dovrebbe visualizzare www.example.com/abc/(.*).xml

+0

Im abbastanza sicuro questo è impossibile. È come cercare di dire a un tassista che vuoi andare in 21 finte street ma in realtà vuoi andare a 38 street reali. L'indirizzo dovrebbe reindirizzare l'utente all'indirizzo specificato. Immagino che potresti dare un'occhiata al mascheramento degli URL http://blog.clickmeter.com/link-cloaking-vs-url-masking/ Se capisco la tua domanda un po 'meglio. –

+0

@KyleT questo non è assolutamente impossibile ... Ci sono un paio di modi per farlo – arco444

+0

@ arco444 Sì, ho appena capito cosa stava chiedendo l'OP. Ho suggerito il mascheramento degli URL –

risposta

3

È possibile utilizzare un RewriteRule:

RewriteEngine On 
RewriteRule /abc/(.*)\.xml$ /abc/xyz/index.htm?file=$1 [L] 

Marchio sicuro di avere mod_rewrite abilitato e mettere questo o nella vostra VirtualHost config, o in un file .htaccess nel DocumentRoot

+0

@ acro444 Grazie per la risposta rapida. Ho appena aggiunto P flag invece di L e ha funzionato perfettamente. RewriteEngine On RewriteRule /abc/(.*)\.xml$ /abc/xyz/index.htm?file=$1 [P] – Constantine

+0

Prego. Per favore accetta la risposta se ti ha aiutato. – arco444

+0

Ha sicuramente aiutato. – Constantine

0

Come Costantino pubblicato sul soluzione accettata, il [P] bandiera è pericoloso in quanto trasforma il server come proxy.

Sede [questo]: https://serverfault.com/questions/214512/redirect-change-urls-or-redirect-http-to-https-in-apache-everything-you-ever?noredirect=1&lq=1

P = Proxy. Forces the rule to be handled by mod_proxy. Transparently provide content from other servers, because your web-server fetches it and re-serves it. This is a dangerous flag, as a poorly written one will turn your web-server into an open-proxy and That is Bad.