web-dev-qa-db-ja.com

私はWPサイトにファンキーな.htaccessを持っているのではないかと心配しています

私の友人は5ヶ月以上前に新しい(非営利)ブログを始めました、しかし、Google + Bingはそれが索引を付けられないように言っているように行動しています。

ランクが低いとは限りません。まったくランク付けされていないという意味です

Googleウェブマスターツールをチェックしました。マルウェアや悪い担当者はいません。

Google + Bingは定期的にクロールしますが、ページにはインデックスを付けません。

私は当初robots.txtを疑っていましたが、GWTはそれについて不満を言っていません。そして今、私は.htaccessに目を向けます。

これはあなたにとって奇妙に見えますか?フィードバーナーに2つのエントリがありますか?同じエントリ内のすべてから拒否し、すべてから許可しますか。私は.htaccessとApacheについてはかなり無知ですが、矛盾だけがおかしいようです。

# temp redirect wordpress content feeds to feedburner
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} !FeedBurner    [NC]
RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC]
RewriteRule ^feed/?([_0-9a-z-]+)?/?$ http://feeds.feedburner.com/anonymousblog  [R=302,NC,L]
</IfModule>

# temp redirect wordpress comment feeds to feedburner
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} !FeedBurner    [NC]
RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC]
RewriteRule ^comments/feed/?([_0-9a-z-]+)?/?$    http://feeds.feedburner.com/anonymous_comments [R=302,NC,L]
</IfModule>

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

IndexIgnore .htaccess */.??* *~ *# */HEADER* */README* */_vti*

<Limit GET POST>
order deny,allow
deny from all
allow from all
</Limit>
<Limit PUT DELETE>
order deny,allow
deny from all
</Limit>

php_value memory_limit 32M
1
jose

そのようなファイルが存在しない場合、WordPressは動的コンテンツでrobots.txtへのリクエストに応答します。それがwp-admin/options-privacy.phpの設定がどのように使われるかの一つの方法です。

プラグインが邪魔にならないように、静的なrobots.txtを作成することをお勧めします。

Robots.txtのサンプル

User-agent: *
Disallow: /cgi-bin
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content/plugins
Disallow: /wp-content/cache
Disallow: /wp-content/themes
Disallow: /trackback
Disallow: /comments
Disallow: */trackback
Disallow: */comments

User-agent: backlink-check.de
Disallow: /


# Prefetches everything. Mwaaah!
User-agent: Fasterfox 
Disallow: /

# adjust the path
Sitemap: http://example.com/sitemap.xml

あなたの.htaccessは確かに奇妙に見えます。 RewriteEngine Onが一度だけ必要です。そして32MBのメモリ制限はとても少ないです。そのような低い値で翻訳を実行することすらできません。

リクエストメソッドはHEADGETPOSTに制限するべきです。

サンプル.htaccess

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /

# FeedBurner
RewriteCond %{HTTP_USER_AGENT} !FeedBurner    [NC]
RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC]
RewriteRule ^feed/?([_0-9a-z-]+)?/?$ http://feeds.feedburner.com/anonymousblog  [R=302,NC,L]
RewriteRule ^comments/feed/?([_0-9a-z-]+)?/?$    http://feeds.feedburner.com/anonymous_comments [R=302,NC,L]

# WordPress
# Existing file
RewriteCond %{REQUEST_FILENAME} !-f
# Existing directory
RewriteCond %{REQUEST_FILENAME} !-d
# Symbolic link
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^ index.php [L]
</IfModule>

IndexIgnore .htaccess */.??* *~ *# */HEADER* */README* */_vti*

<LimitExcept HEAD GET POST>
order deny,allow
deny from all
</LimitExcept>

php_value memory_limit 128M
2
fuxia