wordpressでrobots.txtがnginxで表示されない場合の対処

nginxで、wordpressのプラグイン「XML-Sitemap」でrobots.txtが表示されない

http://hoge.com/robots.txt にアクセスしてrobots.txtが「404 Not Found」になってしまう

wordpressをnginxの環境でセットアップしていると、
XML-Sitemapで自動生成されるrobots.txtがで表示されないようです。
apacheの場合は特に意識しなくても大丈夫かと思いますが。

色々とググってみましたが、日本の記事がなかったので、
メモとして残します。

実は、「http://hoge.com/index.php?robots=1」にアクセスすると
robots.txtの内容が表示されます。
なのでrewriteしちゃいます。

nginxで動的にrobots.txtを表示する設定

/etc/nginx/conf.d/hoge.conf

server {
  listen 80; 

 〜省略〜

  # nginxとwordpressだと自動生成されるrobotsが404になるのを防ぐ
  location = /robots.txt {
    rewrite ^/robots\.txt$ /index.php?robots=1 last;
    allow all;
    log_not_found off;
    access_log off;
  }

   〜省略〜

あとはnginxを再起動

$sudo service nginx configtest
$sudo service nginx restart

実際に「http://hoge.com/robots.txt」の設定確認

User-agent: *
Disallow: /wp-admin/

Sitemap: http://blog.4star.link/index.php?xml_sitemap=params=

上記のように反映されていればOK
シンプル!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください