2012-01-05 17 views
5

ho le seguenti regole di riscrittura:Rimuovere slash se non una directory con apache

#remove the www. 
RewriteCond %{HTTP_HOST} ^www.website.co.uk$ [NC] 
RewriteRule ^(.*)$ http://local.website.co.uk/$1 [R=301,L] 

#this removes php extention 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^\.]+)$ $1.php [NC,L] 

# stops you accessing url with.php 
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /([^.?\ ]+)\.php 
RewriteRule ^([^.]+)\.php(/.+)?$ /$1%{PATH_INFO} [R=301] 

voglio aggiungere in una regola che rimuove la barra finale se qualcuno tenta di accedere al sito con una sola.

esempio

website.co.uk/cheese/ dovrebbe reindirizzare/formaggio

come potete vedere ho una regola che ursl reindirizza con l'estensione .php, non è sicuro da dove cominciare.

devo directory nella cartella principale, che non voglio per rimuovere l'URL finale, ma posso aggiungere una regola di ignorare per quelli.

Acclamazioni

risposta

13

Effettuare il cambio di seguito al file .htaccess

RewriteEngine on 
RewriteBase/

#existing rule 
#remove the www. 
RewriteCond %{HTTP_HOST} ^www.website.co.uk$ [NC] 
RewriteRule ^(.*)$ http://local.website.co.uk/$1 [R=301,L] 

#new Rule 
#if its not a directory 
RewriteCond %{REQUEST_FILENAME} !-d 
#and it has a trailing slash then redirect to URL without slash 
RewriteRule ^(.+)/$ /$1 [L,R=301] 

# rest of your existing rules go here 
+0

perfetto, grazie! – AJFMEDIA

Problemi correlati