Domanda

Io voglio:tutti i link che non conteneva il nome del file (non .html, .jpg, .png, .css) redirect con lo stato da 301 a directory, per esempio: http://mysite.com/article -> http://mysite.com/article/ Ma http://mysite.com/article/article-15.html non reindirizza.Cosa regolaz espressione che mi deve scrivere .htaccess per l'aggiunta di slash per le directory virtuali?

È stato utile?

Soluzione

Ritengo che i seguenti potrebbe funzionare:

RewriteEngine on   
RewriteCond %{REQUEST_URI} ^/[^\.]+[^/]$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [R=301,L]

Quando si tratta di mod_rewrite non posso mai essere sicuro che senza la sperimentazione, anche se...

Altri suggerimenti

Chiarimento necessario:

Dato l'url:http://server/path/file

Non che ottenere reindirizzati a:http://server/path/

O si ottiene reindirizzati a:http://server/path/file/

Come in:Vuoi che il redirect per andare al percorso principale, o si vuole solo aggiungere una barra e assume una cartella di fuori del percorso di corrente?

MB RewriteRule sopra non riuscirà su percorsi come /a perché deve corrispondere almeno due caratteri dopo la barra.Inoltre solo partite su directory di Url.

RewriteRule ^(([^\/]+\/)*[^\/\.]+)$ http://%{HTTP_HOST}/$1/ [R=301,L]

È lo scopo di questo per ridurre la storia dell'inquinamento/falsi negativi?

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