共有ホスティング パッケージに laravel アプリケーションをインストールしており、https://github.com/JosephSilber/page-cacheを使用してページをキャッシュしています。
キャッシュされたページは、次のサーバー フォルダーに保存されます。/home/username/public_html/app_name/public/page-cache/article
次のコードは、パブリック フォルダーにある .htaccess にあります。
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Serve Cached Page If Available...
RewriteCond %{REQUEST_URI} ^/?$
RewriteCond %{DOCUMENT_ROOT}/public/page-cache/pc__index__pc.html -f
RewriteRule .? public/page-cache/pc__index__pc.html [L]
RewriteCond %{DOCUMENT_ROOT}/public/page-cache%{REQUEST_URI}.html -f
RewriteRule . public/page-cache%{REQUEST_URI}.html [L]
RewriteCond %{DOCUMENT_ROOT}/public/page-cache%{REQUEST_URI}.json -f
RewriteRule . public/page-cache%{REQUEST_URI}.json [L]
# Send Requests To Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
DOCUMENT_ROOT AND REQUEST_URI の値をデバッグしようとしましたが、次の結果が得られました。
%{DOCUMENT_ROOT} = /home/username/public_html/app_name and %{REQUEST_URI} = /article/race-policing-and-the-universal-yearning-for-safety
上記の .htaccess のコードを使用すると、キャッシュ ページに誘導することはできませんが、ファイルが存在する場合でもアプリケーションに直接送信されます。
例えば/home/username/public_html/app_name/public/page-cache/article/race-policing-and-the-universal-yearning-for-safety.html
app_name フォルダーには、次の .htaccess ファイルもあります。
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{REQUEST_URI} (\.\w+$) [NC]
RewriteRule ^(.*)$ public/$1
#disable directory browsing
Options -Indexes
#PROTECT ENV FILE
<Files .env>
order allow,deny
Deny from all
</Files>
#PROTECT ENV FILE
<Files .htaccess>
order allow,deny
Deny from all
</Files>
.htaccess が存在する場合にキャッシュ ページが読み込まれない理由を誰かが特定するのを手伝ってくれれば幸いです。安全を確保してください:)。