Ho un progetto PHP in cui ho bisogno di inviare un carattere hash (#) all'interno del percorso di un URL. (http://www.example.com/parameter#23/parameter#67/index.php) Ho pensato che l'urlencode lo avrebbe consentito, convertendo l'hash in% 23Utilizzo di mod_rewrite per convertire i percorsi con caratteri hash in stringhe di query
Ma ora vedo che anche l'hash con codifica url consente al browser di trattare tutto a destra come il frammento di URL (o query).
C'è un modo per passare un hash attraverso, o devo fare una sostituzione di carattere prima di urlencode?
Modifica per aggiungere (19 Settembre 2017):
Si scopre che stavo chiedendo la domanda sbagliata. Il mio problema non consisteva nell'usare il carattere hash all'interno del percorso (la codifica funziona), ma nell'uso di mod_rewrite per convertirlo in una stringa di query. Non ero riuscito a ricodificarlo all'interno di RewriteRule. Modificherò il titolo per abbinare.
Ecco la regola di riscrittura che usavo:
RewriteEngine On
# convert path strings into query strings
RewriteRule "^(.*)/(.*)/hashtags.php" /hashtags.php?parameter_1=$1&parameter_2=$2 [QSA,L]
Appena ho aggiunto il tag B, ha funzionato correttamente:
RewriteEngine On
# convert path strings into query strings
RewriteRule "^(.*)/(.*)/hashtags.php" /hashtags.php?parameter_1=$1&parameter_2=$2 [QSA,L,B]
In che modo si utilizza quell'URL? – Gumbo
Credo che urlencode dovrebbe cambiarlo in% 23, puoi fornire un codice di esempio? –
Sto creando collegamenti statici a PDF creati dinamicamente. Sto usando modrewrite per passare gli elementi del percorso in $ _GET. Sono i parametri di prodotto necessari per creare il PDF. Alcuni prodotti hanno etichette hash nei nomi dei prodotti. – Mark