Domanda

Sto lavorando per l'URL pulito per il mio sito web e ho notato che ciò che trovi su Internet è praticamente sulla riscrittura dei tuoi URL puliti sull'URL con cui il tuo server può funzionare.Quindi qualcosa del genere:

www.domain.com/profile/username --> www.domain.com/profile.php?u=username

RewriteEngine On
RewriteRule ^profile/(.*)$ /profile.php?u=$1 [L]
.

Allora ora con questo dovrei collegarmi nel mio sito Web a quello di Cleanurl.Ma intuitivamente si sente più solido / migliore da collegare all'URL "sporco".Quindi, in tal caso, è necessario utilizzare le riscritte per quanto sopra e una regola di reindirizzamento per riderlicare l'URL di "sporco" all'URL pulito, quindi l'utente vede solo l'URL pulito nel browser in ogni momento.

www.domain.com/profile.php?u=username --> www.domain.com/profile/username
.

è questo qualcosa che è una buona cosa da fare.È fatto dai siti web?Quali sono gli argomenti contro / a favore di esso?

E come fai a fare un reindirizzamento come questo.Qualcosa come il seguente non sembra funzionare:

RewriteRule ^profile\.php?u=(.*)$ /profile/$1 [R=301, L]
.

Sono abbastanza nuovo a .htaccess quindi potrei chiedere qualcosa che è ovvio ...

È stato utile?

Soluzione

RewriteRule ^profile\.php?u=(.*)$ /profile/$1 [R=301, L]
.

non funzionerà perché non è possibile corrispondere alla stringa di query da un RewriteRule (hai anche uno spazio randagio nelle bandiere).Vuoi anche corrispondere contro la richiesta effettiva e non l'URI perché causeresti solo un ciclo di reindirizzamento dalla tua altra regola.

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /profile\.php\?u=([^&\ ]+)
RewriteRule ^/?profile\.php$ /profile/%1 [R=301,L]
.

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