2012-01-05 14 views
5

Mam następujące reguły przepisywania:Usuwanie początkowych ukośnik jeśli nie jest katalogiem z 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] 

chcę dodać w regule, która usuwa ukośnik jeśli ktoś próbuje uzyskać dostęp do witryny z jednym.

np

website.co.uk/cheese/ należy przekierować do/sera

jak widać mam zasadę, że przekierowuje URSL z rozszerzeniem .php, nie wiem od czego zacząć.

Mam katalog w folderze głównym, którego nie chcę usuwać, ale mogę dodać regułę ignorowania dla tych katalogów.

Cheers

Odpowiedz

13

dokonać zmiany poniżej do pliku .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

doskonały dzięki! – AJFMEDIA

Powiązane problemy