私のウェブサイトの問題を解決しようとしているときに、私が手に入れた.htaccessファイルに関する推奨事項は
まず、有効な場合はすべての異なるモジュールについてサーバーで確認し、有効になったらモジュールを削除します
<IfModule
...></IfModule>
ブロック。サーバーに不必要な負担をかけています。
モジュールがアクティブかどうかを確認するためにどこを調べる必要があるかわかりません-CMSにありますか? httpd.confファイルに?私のサーバー上のファイルに?テストとして.htaccessを少し変更する必要がありますか?しかし、それ以上に、推薦の自己は適切ではないでしょうか?ありがとう。
推奨されている.htaccessファイルは次のとおりです。
Options +FollowSymLinks -MultiViews
RewriteEngine on
AddHandler x-httpd-php .html .htm
<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>
<ifModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 seconds"
ExpiresByType text/html "access plus 1 seconds"
ExpiresByType image/gif "access plus 2592000 seconds"
ExpiresByType image/jpeg "access plus 2592000 seconds"
ExpiresByType image/png "access plus 2592000 seconds"
ExpiresByType text/css "access plus 2592000 seconds"
ExpiresByType text/javascript "access plus 216000 seconds"
ExpiresByType application/x-javascript "access plus 216000 seconds"
</ifModule>
<ifModule mod_headers.c>
<filesMatch "\\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>
<filesMatch "\\.(css)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>
<filesMatch "\\.(js)$">
Header set Cache-Control "max-age=216000, private"
</filesMatch>
<filesMatch "\\.(xml|txt)$">
Header set Cache-Control "max-age=216000, public, must-revalidate"
</filesMatch>
<filesMatch "\\.(html|htm|php)$">
Header set Cache-Control "max-age=1, private, must-revalidate"
</filesMatch>
</ifModule>
<ifModule mod_headers.c>
Header unset ETag
</ifModule>
FileETag None
<ifModule mod_headers.c>
Header unset Last-Modified
</ifModule>
RewriteCond %{HTTP_Host} !^(www\.)?foo\.com$
RewriteRule .? http://foo.com%{REQUEST_URI} [R=301,L]
#BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php
</IfModule>
# END WordPress
PHPがApacheモジュールとして実行されている場合、phpinfo()
関数を使用できます。 Apacheセクション(通常はApache2handler
)を検索し、「Loaded Modules」の行を探します。
Apacheモジュールを意味すると仮定すると、以下を実行して、ロードしたモジュールをリストできます。
apachectl -t -D DUMP_MODULES
これらのモジュールがロードされていない場合、サイトで何が壊れるかはわかりませんが、最適なキャッシュ制御設定が得られないだけです。ロードされていない場合はロードすることさえできないので、ifmoduleは省いてください。 Apacheウェブサイトは言う
通常の操作では、ディレクティブをセクションに配置する必要はありません。
まず、サーバーですべての異なるモジュールが有効になっているかどうかを確認し、有効になったら<IfModule ...> </ IfModule>を削除してください
クエリについて:これらのモジュールがサーバー上で有効になっているかどうかを確認する必要があります。有効であれば、htaccessからif条件を削除できます。
例えばモジュールmod_expires.cが有効になっている場合は、<IfModule mod_expires.c></IfModule>
を削除できます。この部分のみを保持します。
ExpiresActive On
ExpiresDefault "access plus 1 seconds"
ExpiresByType text/html "access plus 1 seconds"
そのモジュールは既に有効になっているため、有効になっているかどうかを確認することはもうありません。