0

私のドメインはwww.site.name.jpです。
www.site.name/aboutのようにサブページからwwwと.htmlを削除したいとします。 htmlhtaccess - サブドメインページからwwwと.htmlを削除する

どうすればよいですか?私はこのコードを使用していましたが、実際は動作しています!しかし、私はちょっと私のGoogleクロールの分析に副作用があるのか​​と心配しています。あなたがたURLからwww.htmlを削除するには、あなたの最初のルールとしてこのルールを使用することができます

Options +MultiViews 

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

<IfModule mod_deflate.c> 
    #Force deflate for mangled headers 
    <IfModule mod_setenvif.c> 
    <IfModule mod_headers.c> 
     SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding 
     RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding 
    </IfModule> 
    </IfModule> 

    #HTML, TXT, CSS, JavaScript, JSON, XML, HTC: 
    <IfModule filter_module> 
    FilterDeclare COMPRESS 
    FilterProvider COMPRESS DEFLATE resp=Content-Type $text/html 
    FilterProvider COMPRESS DEFLATE resp=Content-Type $text/css 
    FilterProvider COMPRESS DEFLATE resp=Content-Type $text/plain 
    FilterProvider COMPRESS DEFLATE resp=Content-Type $text/xml 
    FilterProvider COMPRESS DEFLATE resp=Content-Type $text/x-component 
    FilterProvider COMPRESS DEFLATE resp=Content-Type $application/javascript 
    FilterProvider COMPRESS DEFLATE resp=Content-Type $application/json 
    FilterProvider COMPRESS DEFLATE resp=Content-Type $application/xml 
    FilterProvider COMPRESS DEFLATE resp=Content-Type $application/xhtml+xml 
    FilterProvider COMPRESS DEFLATE resp=Content-Type $application/rss+xml 
    FilterProvider COMPRESS DEFLATE resp=Content-Type $application/atom+xml 
    FilterProvider COMPRESS DEFLATE resp=Content-Type $application/vnd.ms-fontobject 
    FilterProvider COMPRESS DEFLATE resp=Content-Type $image/svg+xml 
    FilterProvider COMPRESS DEFLATE resp=Content-Type $application/x-font-ttf 
    FilterProvider COMPRESS DEFLATE resp=Content-Type $font/opentype 
    FilterChain  COMPRESS 
    FilterProtocol COMPRESS DEFLATE change=yes;byteranges=no 
    </IfModule> 

    <IfModule !mod_filter.c> 
    #Legacy versions of Apache 
    AddOutputFilterByType DEFLATE text/html text/plain text/css application/json 
    AddOutputFilterByType DEFLATE application/javascript 
    AddOutputFilterByType DEFLATE text/xml application/xml text/x-component 
    AddOutputFilterByType DEFLATE application/xhtml+xml application/rss+xml 
    AddOutputFilterByType DEFLATE application/atom+xml 
    AddOutputFilterByType DEFLATE image/svg+xml application/vnd.ms-fontobject 
    AddOutputFilterByType DEFLATE application/x-font-ttf font/opentype 
    </IfModule> 
</IfModule> 

答えて

1

RewriteEngine On 

RewriteCond %{HTTP_HOST} ^www\. [NC,OR] 
RewriteCond %{THE_REQUEST} \.html[\s?] [NC] 
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC] 
RewriteRule ^(.+?)(?:\.html)?$ http://%1/$1 [R=301,L,NC,NE] 

# now add .html internally 
RewriteCond %{REQUEST_FILENAME}.html -f 
RewriteRule ^(.+?)/?$ $1.html [L] 
+0

働いているように見えたが、実際に私は、この取得しています:site.name/aboutを。 (最後にドットがあります) –

+0

ああ、すみませんでした。打ち間違え。ブラウザのキャッシュをクリアした後、私の編集した答えをお試しください。 – anubhava

+0

コード@anubhavaを修正していただきありがとうございますが、まだ動作していません:/私が自分のウェブサイトのホームページにいて、私のメインメニューのリンクをクリックすると、 "site.name/about "、魔女は正しいですが、ページには何も表示されません。私は私のリンク(href)の両方のフォーマットを入力しようとしました:.htmlの有無にかかわらず。結果は同じで、ページは表示されません。 –

関連する問題