[wp]ContactForm7を保存しようとしたら403errorになる時の対処法

簡単。

症状

タイトルの通り。

作ったフォームが全滅だったり、一部のフォームだけ404担ったりする。

原因

大体はWAFのせい。WAFを通した結果403になる。

フォーム関係は半角英数の記載が多いのでセキュリティ対象になることがよくある。

これで解決しなかったケースは今のところ出会ったことがない。

対策

.htaccessで自分のIPをWAFの対象から除外する。

1.自分のIPを調べる。

2.以下のコードにIPを入れる。

<IfModule mod_siteguard.c>
  SiteGuard_User_ExcludeSig ip(【自分のIP】)
</IfModule>

3.wordpressの最上層にある.htaccessにコードを追記。

# BEGIN WordPress
# "BEGIN WordPress" から "END WordPress" までのディレクティブ (行) は
# 動的に生成され、WordPress フィルターによってのみ修正が可能です。
# これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

<IfModule mod_siteguard.c>
  SiteGuard_User_ExcludeSig ip(【自分のIP】)
</IfModule>

以上。

一時的な処置でしかない

グローバルIPを固定してるならいいんだけど。

そういうことをしてなかったら、確実にどっかのタイミングでIPは変更される。そういうもん。

なので、仕込んだのに弾かれる事はある。IPが変わってるから当然。

だから、弾かれたら同じ手順で.htaccessを修正する。

エラーはページによって違う

固定ページとか投稿の編集時にWAFが動作することもある。

その場合は403でなく、編集画面上にエラー表示が出てくる。編集データが飛ばないので助かる。

コメント

タイトルとURLをコピーしました