<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-KRS8CM');</script>

【a-blog cms】index.htmlでアクセスしたい


a-blog cmsのテンプレートには主に3種類あって、それぞれ、

  • トップページ→top.html
  • 一覧ページ→index.html
  • エントリー詳細→entry.html

という名前にするのが、一般的でお勧めなようです。

そうなると気になるのが、たとえば、トップページのつもりで「http://www.hyarara.jp/index.html」にアクセスしたらどうなるか?というところです。
上記のように設定していた場合、あえてindex.htmlまで書いてアクセスすると、一覧ページ用のテンプレートのページが表示されてしまいます。
モジュールIDをつけて、いろいろ設定をしたモジュールがindex.htmlに入っていると、予期せぬ表示になる場合があります。
サイト内で処理する分には、あえて「index.html」をつける必要はありませんが、外部からのリンクがわざわざ「index.html」にされていた場合、問題です。

.htaccessに追記する

その場合、CMSのルートディレクトリにある.htaccessに追記すると、うまく処理できるようです。

#RewriteBase /
の次に、
RewriteCond %{REQUEST_URI} ^(.*)index.html$
RewriteRule .* %1 [L,R=301]
の2行を追記します。

これで、index.htmlでアクセスされた場合に、index.htmlのないURLとしてリダイレクトされて、適切なテンプレートで表示されます。
自分であえてindex.htmlと書くことはないと思いますが、外部からindex.htmlとしてリンクされている場合がありますので、既存のサイトをCMS化した場合には、注意が必要かもしれません。

サーバ環境にもよるそうなので、事前に動作確認を。


<script type="text/javascript" id="zsiqchat">var $zoho=$zoho || {};$zoho.salesiq = $zoho.salesiq || {widgetcode: "siq61aecceb7ad0c24af4e4670187f03564ddd615eb71422e1b7169309fa9b25e89", values:{},ready:function(){}};var d=document;s=d.createElement("script");s.type="text/javascript";s.id="zsiqscript";s.defer=true;s.src="https://salesiq.zohopublic.com/widget";t=d.getElementsByTagName("script")[0];t.parentNode.insertBefore(s,t);</script>