2017-03-07 18 views
1

ドメイン名からWWWを削除し、URLからスラッシュを削除するための301リダイレクト書き換えルールは作成できません。HtaccessはWWWとSlash + 301リダイレクトを削除します

ご協力いただきありがとうございます。

例:

www.domain.com/  to domain.com 
domain.com/   to domain.com 
domain.com/page/  to domain.com/page 
domain.com/page.php to domain.com/page 

マイコード:これは、既存のディレクトリから最後のスラッシュ削除されないことを

RewriteEngine on 

RewriteCond %{HTTP_HOST} ^www\. 
RewriteRule^http://example.com%{REQUEST_URI} [NE,L,R] 
#remove trailing slash 
RewriteRule ^(.+)/$ /$1 [L,R] 
#remove .php ext 
RewriteCond %{THE_REQUEST} /([^.]+)\.php [NC] 
RewriteRule^/%1 [L,R] 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.*?)/?$ /$1.php [L] 

注:

RewriteCond %{HTTP_HOST} ^(www.)?domain\.com$ [NC] 
RewriteRule ^(.*)/$ http://%{HTTP_HOST}/$1 [R=301,L] 

RewriteRule ^/(.*)/$ /$1 [NC,L] 

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

答えて

1

あなたはこれを使用することができます。既存のディレクトリを要求すると、Apacheは後続のスラッシュを追加します。あなたはこのスラッシュを削除したい場合、あなたは

DirectorySlash off 

htaccessファイルに次のディレクティブを使用する必要がありますこれは、スラッシュを無視すると、あなたが最後のスラッシュの有無にかかわらず、既存のdirsを訪問することができApacheを伝えます。

+0

ありがとうございました。 wwwとスラッシュはうまく削除されますが、consは表示可能な.phpのページにリダイレクトされます。 .php拡張子を隠す方法はありますか? – StackOverflowCom

+0

.phpファイルのルールを追加しました。ご覧になるには、ページをリロードしてください。 – starkeen

+0

ありがとうございました。 フラグの使用方法をよりよく理解するために、Apacheのドキュメントを引き続き参照します。 – StackOverflowCom

関連する問題