Domanda

Sto cercando di creare ancore pagina su un sito web che utilizza mod_rewrite (Apache2 in esecuzione su Ubuntu Server 9.04).

Il mio file .htaccess si presenta così:

RewriteEngine On
RewriteRule ^information.php/([A-Za-z0-9-]+)/?$ information.php?display=$1  [NC,NE]

Se stavo usando URL regolare è la query sarebbe simile a questa: http: //mydomain/information.php?display=faq#cost

Spero di ottenere qualcosa del genere: http: // mydomain / informazioni / faq / costo

È possibile? La mia comprensione è che modrewrite ignora ancore di pagina, e che il browser si occupa di esso? Sto indovinando che posso usare in qualche modo mod_rewrite per includere le informazioni di ancoraggio con la richiesta, ma non sono stato in grado di trovare qualcosa di documentare questo e hanno cercato, senza successo, di scrivere io stesso per ore.

Grazie!

È stato utile?

Soluzione

In realtà, se si desidera che il risultante URL di avere un ancoraggio, allora sì, è possibile. Basta non dimenticare che nel file di configurazione di Apache, # segna l'inizio di un commento.

Se quello che vuoi è così - utente inserisce

http://example.com/page/anchor
e viene reindirizzato al
http://example.com/?p=page#anchor
- si avrebbe bisogno di utilizzare 301 Redirect, o qualcosa del genere, quindi non sarebbe trasparente per l'utente

Conclusione: Anche se è possibile scrivere una regola di reindirizzamento, non può essere fatto interamente sul lato server. Quindi penso che si potrebbe puntare a /information/faq /information.php?display=faq e quindi utilizzare gli URL come ad esempio:.

http://example.com/information/faq#foo
che sono quasi ciò che si vuole, più essi non rovinare la cache

(Whoa, è mezzanotte già?)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top