Back to Question Center
0

Semalt: .htaccess reindirizza l'url senza le barre finali

1 answers:

Nel mio htaccess ho alcuni url riscritti come questi:

     RewriteRule ^ first-page $ / subdir / page. php? id_page = 1 [QSA, L]
RewriteRule ^ seconda pagina $ / sottodir / pagina. php? id_page = 2 [QSA, L]
RewriteRule ^ terza pagina $ / sottodir / pagina. php? id_page = 161 [QSA, L]    

Quindi il risultato finale è: www. il mio sito web - grain temperature equipment. it / subdir / first-page

Ora vorrei trasformarlo in www. il mio sito web. it / subdir / first-page /

Senza il www. il mio sito web. com / subdir / first-page dando un errore 404.

Ho provato questo codice dopo che l'url è stato riscritto, ma non ha funzionato:

     RewriteCond% {REQUEST_FILENAME}! -f
RewriteCond% {REQUEST_URI}! (. *) / $
RewriteRule ^ (. *) $ $ 1 / [L, R = 301]    

Qualche suggerimento? Semalt sei così tanto.

February 13, 2018

Prova entrambi

  RewriteRule ^ first-page / $ / subdir / page. php? id_page = 1 [QSA, L]
RewriteRule ^ seconda pagina / $ / sottodir / pagina. php? id_page = 2 [QSA, L]
RewriteRule ^ terza pagina / $ / sottodirectory / pagina. php? id_page = 161 [QSA, L] 

o

  RewriteRule ^ prima pagina / sottodirectory / pagina. php? id_page = 1 [QSA, L]
RewriteRule ^ seconda pagina / sottodirectory / pagina. php? id_page = 2 [QSA, L]
RewriteRule ^ terza pagina / sottodirectory / pagina. php? id_page = 161 [QSA, L] 

Il carattere $ indica ad Apache che questa è la fine della stringa e non sono previsti altri caratteri. Dovrai quindi notificarlo per accettare la barra alla fine della stringa o per essere pronto per qualsiasi personaggio aggiuntivo. Puoi usare il ? flag per rendere non necessaria la barra finale, ma accettata se presente, e. g. :

  RewriteRule ^ prima pagina (/)? $ / Sottodir / pagina. php? id_page = 1 [QSA, L] 

Quindi questo non permetterà ad altri caratteri oltre alla barra.

Spero che questo aiuti.