2012-01-05 7 views
5

とディレクトリのスラッシュを末尾にない場合は削除します。は、私は、次の書き換えルールを持っている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] 

私は誰かが1でサイトにアクセスしようとすると、最後のスラッシュを削除し、ルールに追加します。あなたは私が.phpの拡張子でurslをリダイレクトするルールを持って見ることができるように

例えば

website.co.uk/cheese/チーズ

/にリダイレクトする必要があり、わからないところを開始します。

ルートフォルダには、末尾のURLを削除しないディレクトリがありますが、無視するルールを追加できます。

乾杯

答えて

13

あなたの.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

完璧感謝してください! – AJFMEDIA