2017-08-27 20 views
0

私はこの2つのコードの違いを理解しようと非常に努力しましたが、見つけられませんでした。私はURLから ".html"拡張子を削除しようとしていますが、私はいつも2つの異なるコードが異なるウェブサイトから使用されているのを見ています。これら2つの.htaccessコードの違いは何ですか?

最初のコードは次のとおりです。

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)\.html$ http://example.com/$1 [R=301,L] 

第二のコードは次のとおりです。

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^\.]+)$ $1.html 

私の理解から、最初のコードは、その.htmlのパス(例えばになるために使用される任意の文字を置き換えるようです。example.com.com/home.html).html拡張子なしで置き換えることができます(例:example.com/home)。しかし、多くの異なるウェブサイトで、どちらも今後も引き続き登場するようです。だからこそ私は、誰もが両者の違いを知っているかどうか、これらのコードの両方が実際に意味するものを知りたいのですか?

ご協力いただければ幸いです。

答えて

2

最初は.htmlで終わるパスのすべての要求にマッチし、それが.htmlなしexample.comに、同じパスを求める必要があるブラウザに指示します。

2つ目のパスは、任意のパスの要求と一致し、その末尾に.htmlを追加してブラウザに配信するようにサーバーに指示します。

+0

これも私が思ったことですが、多くのWebサイトでは、2番目のコードは、最後に.htmlを削除すると述べています。 –

+0

これは、特定の観点から、真実です。それは、 '.html'を使わないURLを動作させます。 – Quentin

+0

技術的には両方のコードが機能しますか?または、最初の方が信頼性が高いですか? –

関連する問題