サーバーサイドインクルードを実行したいのですが、マシンにnginxサーバーがインストールされていますが、nginx.confファイルでssiを有効にする方法が見つかりませんか?私がインターネットから見つけることができるのは
syntax: ssi on | off;
default:
ssi off;
context: http, server, location, if in location
ロケーションコンテキストでssiを有効にします。私の場合、ルートに配置したい
location / {
ssi on;
}
あなたは私が抱えていたのと同じ問題を抱えていたようです。NGINXでSSIを有効にする方法の明確な説明を見つける。Crystal Clearには、使用する構文だけでなく、形式、および正確にどこに含めるかが含まれます。私はそれを理解しました、そしてそれはそれほど難しいことではありません、しかしインターネット上の明確な指示の欠如はイライラしました。
nginx.confファイルを開いて、次のようにフォーマットされたセクションを探す必要があります(「ssion」構文も含めました)。
location / {
root E:\website\FinalJRLWeb;
index index.html index.shtml;
ssi on;
}
場所を理解するのに少し時間がかかりましたが、指定したインデックスファイル名のすぐ下に「ssi on」という行を追加するのと同じくらい簡単です(そして、実際に好きな場所に移動できるはずです、私は想像していません2つの括弧{})内にある限り、順序は重要です。
その後、SSIがNGINXサーバーで機能していることを確認するには、空白のhtmlページの「body」タグの任意の場所に次の行を追加します
<!--#echo var="DATE_LOCAL" -->
Webサーバーのルートディレクトリに拡張子.shtmlを付けて保存します。
ページにアクセスすると、サーバーのローカルの日付と時刻が表示されます。これはほぼ1年前のことですが、明確な指示を見つけようとして欲求不満を感じた後、それを必要とする可能性のある他の人に明確な指示を提供するように最善を尽くしたいと思いました。うまくいけば、これは誰かを助けるでしょう!
これがSSIに関するNGINXのドキュメントページです(正直言って、私が望んでいたほどには役に立ちませんでしたが、それでも有用であり、ますます有用になる可能性があります)
http://nginx.org/en/docs/http/ngx_http_ssi_module.html#ssi_last_modified
デフォルトでは、ssiはtext/html
MIMEタイプにのみ適用されます。ここに明確に文書化されていますが、これはあなたにフラストレーションを与えるかもしれませんhttp://nginx.org/en/docs/http/ngx_http_ssi_module.html#ssi_types
追加する必要があるかもしれません
ssi on;
ssi_types *; # Or something more specific
1つのドメインに対してのみSSIを有効にするには(セキュリティホールの可能性を制限する)、次のようにそのドメインの.confファイルに追加できます。Debianでは、これらは(一部の人にとっては物議を醸す)Apacheのようなシステムの「etc/nginx」に保存されます。 /sites-available」。
server {
server_name mydomain.com;
root /home/username/html;
index index.html index.shtml;
location / {
ssi on;
...otherstuffhere
}
}
重要な部分:
index index.html index.shtml;
ssi on;