ラベル .htaccess の投稿を表示しています。 すべての投稿を表示
ラベル .htaccess の投稿を表示しています。 すべての投稿を表示

10/11/2024

ConoHaサーバの.htaccess(PHPの設定)

先月やっと引っ越したばかりのサイトだが、PHPのVer.があがったり、サーバが変わってドキュメントルートが変わってしまうとエラー出まくりの可能性があるサイトなので、このサイトこそが引っ越しせねばならぬのだった

https://pinkwolf.site/hachikuma/


https://hachikuma.tan-deki.com/

中身を移行して、そのままトップページを開いてみると、index.htmlではPHPが使えない設定(まあ通常はそれがデフォルト)のようで、確認のためにindex.phpと拡張子を変えてみたら、一応はPHPを読み込んでるがショートタグは読み込まれてなさそうだ

info.phpから確認したら、確かに short_open_tag が「Off」になってたので、.htaccessファイルに以下のように記述して、FTPでアップ

AddType application/x-httpd-lsphp .html
php_value short_open_tag On

しかし、これが全く反映せず・・・結果としてはコンパネから設定できたのだが、恐らくうっかり上書きや削除をしてしまったりせぬよう、コンパネからしか編集できない仕組み?


[サイト設定]⇒[応用設定]⇒[.htaccess設定]

これでPHPのエラーは出なくなって、残るエラーはリンクだ

10/01/2024

.htaccessのPHP設定(CPI、ロリポップ、heteml)

HTMLファイルでPHPを使いたい場合、Xサーバでは以下のように.htaccessに記述

AddHandler fcgid-script .html

これはFastCGIを使ってHTMLファイルを処理する設定

でもレンタルサーバによって異なる方式でPHPを処理するので、他では設定が違う

ちなみにCPIだと以下

AddHandler x-httpd-php80 .php .html

ロリポップだと以下

AddHandler php8.2-script .html

hetemlだと以下

AddHandler php7.4-script .html

てか、hetemlはVer.上げなきゃだわ・・・





9/30/2024

.htaccessの基本設定(Xサーバ)

SetEnvIf Request_URI ".*" Ngx_Cache_NoCacheMode=off
SetEnvIf Request_URI ".*" Ngx_Cache_AllCacheMode
AddHandler fcgid-script .html

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

各行の意味


1行目 SetEnvIf Request_URI ".*" Ngx_Cache_NoCacheMode=off

すべてのリクエストURIに対して、Ngx_Cache_NoCacheMode 環境変数を off に設定
これはキャッシュ無効化モードをオフにし、キャッシュを有効化する設定なので、サイトの更新中は行頭にコメントアウト(#)しておく

2行目 SetEnvIf Request_URI ".*" Ngx_Cache_AllCacheMode

すべてのリクエストURIに対して、Ngx_Cache_AllCacheMode 環境変数を設定(デフォルトでは値 1 が設定されてる)
これですべてのコンテンツをキャッシュ対象とするモードが有効になってるので、サイトの更新中は行頭にコメントアウト(#)しておく

3行目 AddHandler fcgid-script .html

拡張子 .html ファイルを fcgid-script ハンドラーで処理するように設定
PHPコードなどのサーバサイドスクリプトを .html ファイル内で実行可能にするためなので、PHPを使用してても拡張子 .php ファイルでしか使わなければ不要
ブラウザ上で実行されるJavaScriptはクライアントサイドスクリプトなので不要

5行目以降はHTTPからHTTPSへのリダイレクト設定

&lt;IfModule mod_rewrite.c&gt;:
mod_rewrite モジュールが有効な場合にのみ、内部のリライトルールを適用
RewriteEngine On:
URLの書き換え機能を有効化
RewriteCond %{HTTPS} off:
リクエストがHTTPの場合にのみ、次のリライトルールを適用する条件を設定
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]:
すべてのHTTPリクエストを同じホスト名とリクエストURIを保持したまま、HTTPSにリダイレクト
R=301: 
恒久的なリダイレクトを指定
L: 
これが最後のルールであることを示し、他のリライトルールの適用を停止