0

わかりました、質問の仕方が本当にわかりませんでしたが、私の問題、または少なくとも問題は次のようになると思います。

私が取り組んでいるブログの読み込みが非常に遅いため、gzip を追加してすべてのプラグインを無効にするなど、通常どおり高速化を行いましたが、役に立ちませんでした。そのため、Firebug で送信されているヘッダーを調べたところ、ページの元のリクエストが永遠にかかっていることに気付きましたが、残りのリクエストは通常​​どおり読み込まれていました。

特定のページの応答/要求ヘッダーは次のとおりです。

リクエスト ヘッダー

Host:               dev.mydomain.com
User-Agent:         Mozilla/5.0... ...Firefox/3.6.17
Accept:             text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language:    en-us,en;q=0.5
Accept-Encoding:    gzip,deflate
Accept-Charset:     ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive:         115
Connection:         keep-alive
Referer:            http://dev.mydomain.com/blog/2011/05/06/hello-world/
Cookie:             Cookie data...

応答ヘッダー

Date:               Tue, 07 Jun 2011 17:37:42 GMT
Server:             Apache
X-Pingback:         http://dev.mydomains.com/blog/xmlrpc.php
Expires:            Thu, 19 Nov 1981 08:52:00 GMT
Last-Modified:      Tue, 07 Jun 2011 17:37:59 GMT
Cache-Control:      no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma:             no-cache
Vary:               Accept-Encoding
Content-Encoding:   gzip
Content-Length:     4981
Connection:         close
Content-Type:       text/html; charset=UTF-8

キャッシュがなく、接続が閉じるように設定されており、有効期限が 30 年前であるため、明らかに何かが間違っています。

これは、expires ヘッダーなどを設定した .htaccess ファイルです。

.htaccess

# compress text, html, javascript, css, xml:
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/x-javascript

# Or, compress certain file types by extension:
<Files *.html|*.php>
SetOutputFilter DEFLATE
</Files>

ExpiresActive On
ExpiresDefault A0
ExpiresByType image/gif A2592000
ExpiresByType image/png A2592000
ExpiresByType image/jpg A2592000
ExpiresByType image/jpeg A2592000
ExpiresByType image/ico A2592000
ExpiresByType text/css A2592000
ExpiresByType text/javascript A2592000
ExpiresByType application/javascript A2592000
ExpiresByType application/javascript A2592000

FileETag none

AddType text/x-component .htc
AddType image/x-icon .ico 

AddHandler application/x-httpd-php .php .html

DirectoryIndex index.php
allow from all
RewriteEngine on

RewriteBase /  
RewriteCond %{REQUEST_URI} ^/blog/
RewriteCond %{REQUEST_FILENAME} !-f  
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.+)$ /blog/index.php [L]

RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d

## Ignore CSS, Scripts and Images
RewriteRule !\.(xml|swf|js|ico|gif|jpg|png|css|htc)$ index.php [L]

大変感謝しております。

ところで、CentOS 5.* の PHP 5.2.10/MySQL 5.1 で WordPress 3.1.1 を実行しています。

4

1 に答える 1

0

私は同じ問題と戦っていますが、私が発見したことの 1 つは、.htaccess ファイルは、Web ホストによって与えられたアクセス許可と同じくらいしか有効ではないということです。独自の Web サイトをホストしていますか、それとも Web ホスティング会社に所属していますか?

独自のサイトをホストしている場合は、.htaccess ルールが機能するように、'Allow Override' ディレクティブが適切に設定されていることを確認する必要があります。さらに良いことに、httpd.config ファイルをセットアップして、同様にジョブを実行してください。

しかし、Web ホスティング会社の場合は、使用できるディレクティブ (作成した .htaccess ルール) について尋ねる必要があります。Web ホストの [オーバーライドの許可] が [NONE] に設定されている場合、.htaccess ファイルは無視されます。

私が検索したどこでも、遠い将来に設定された Expires ヘッダーが最適であると述べています。過去 (1981 年 11 月) に設定された場合、ブラウザーは毎回新しいページ/画像をフェッチするように強制されます。

最後に、.htaccess ルールを再確認することをお勧めします。出発点として役立つセットを次に示します。

#BEGIN htaccess
#Protect the htaccess file
<Files .htaccess>
Order Allow,Deny
Deny from all
</Files>

#Protect the htaccess file
<Files wp-config.php>
Order Allow,Deny
Deny from all
</Files>

# Disable directory browsing
Options All -Indexes

# Enable the following of symlinks
Options +FollowSymLinks

<IfModule mod_headers.c>
# No ETags, No Pragma
Header unset Pragma
Header unset ETag
# Make sure proxies deliver correct content
Header append Vary User-Agent env=!dont-vary
# Ensure proxies deliver compressed content correctly
Header append Vary Accept-Encoding
</IfModule>

# Set up Cache Control headers
ExpiresActive On
# Default - Set http header to expire everything 1 week from last access, set must-revalidate
ExpiresDefault A604800
Header append Cache-Control: "max-age=3600, must-revalidate"
# Apply a customized Cache-Control header to frequently-updated files
<FilesMatch "^(test¦eval)\.html$">
ExpiresDefault A1
Header unset Cache-Control:
Header append Cache-Control: "no-cache, must-revalidate"
</FilesMatch>
<FilesMatch "^robots\.txt$">
ExpiresDefault A7200
</FilesMatch>

ExpiresByType image/x-icon A14515200

# Set up caching on media files for 1 month
<FilesMatch "\.(gif|jpg|JPG|jpeg|png|PNG|swf)$">
  ExpiresDefault A2419200
</FilesMatch>

# Set up caching on commonly updated files 1 month
<FilesMatch "\.(xml|txt|html|js|css)$">
  ExpiresDefault A2419200
</FilesMatch>

<FilesMatch "\.(ico|gif|jpg|JPG|jpeg|png|PNG|css|js|html?|xml|txt)$">
FileETag None
</FilesMatch>

<IfModule mod_deflate.c>
<FilesMatch "\.(js|css|text|html)$">
SetOutputFilter DEFLATE
</FilesMatch>
</IfModule>

これがお役に立てば幸いです。幸運を祈ります。

ライトフット

于 2011-07-08T00:53:36.077 に答える