Come scrivere la regola di riscrittura htaccess per l’url seo-friendly

  • Sono solo nuovo di .htaccess .
  • Ho bisogno di alcune regole di riscrittura per gli URLs .
  • Ho fatto un po ‘di google e ho applicato ma non ho modificato l’URL.

Voglio:

 demo.example.com/section.php?id=1 

Cambiato in:

 demo.example.com/section/sample-section 

Provai

 RewriteCond %{SCRIPT_FILENAME} !-d RewriteCond %{SCRIPT_FILENAME} !-f RewriteRule ^section/(\d+)*$ ./section.php?id=$1 

ma nessuna differenza

Grazie.

Apprezzerò il tuo aiuto.

Innanzitutto, assicurati che mod_rewrite sia abilitato e i file htaccess consentiti nella configurazione di Apache.

Quindi, inserisci questo codice nel tuo htaccess (che deve essere nella cartella principale)

 Options -MultiViews RewriteEngine On # redirect "/section.php?id=xxx" to "/section/xxx" RewriteCond %{THE_REQUEST} \s/section\.php\?id=([0-9]+)\s [NC] RewriteRule ^ /section/%1? [R=301,L] # internally rewrite "/section/xxx" to "/section.php?id=xxx" RewriteRule ^section/([0-9]+)$ /section.php?id=$1 [L] 
 RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^section/([^/]+)$ /section.php?id=$1 [L] 

Questo trasformsrà example.com/section.php?id=X in example.com/section/X

Suggerisco di archiviare l’URI in un database usando quindi section.php? Uri =

Per esempio:

example.com/section.php?uri=super-awesome

si trasformsrebbe in:

example.com/section/super-awesome