###実現したいこと
wordpressで構築しているサイトを別サイトに301リダイレクトしています。
ただ、リダイレクト前のサイトの管理画面にはアクセスできるようにしておきたいのですが、
うまく実現できません。
RewriteCondを記述して除外できないかと試しているのですが、リダイレクト先のwp-adminへ
リダイレクトされてしまいます。
どのように記述すれば管理画面へのリダイレクトは除外できるのでしょうか。ご教授いただけると幸いです。
###現状のhtaccessのコード
<Files ~ "^\.ht"> deny from all </Files> # Redirect RewriteEngine On # base path RewriteBase / RewriteCond %{REQUEST_URI} !^/wp-admin/ RewriteRule ^(.*)$ リダイレクト先URL/$1 [R=301,L]
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
ベストアンサー
wp-login.php
とwp-admin
へのアクセスを制限するために私が利用している記述を少し変えただけのものですが、よろしければ一度試してみてください。
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / # リファラーが正しいかどうかを念の為にチェック(ドメインは書き換えてください) RewriteCond %{HTTP_REFERER} ^http://(.*)?your-domain\.com [NC] # (ログインできるように)ログイン画面または RewriteCond %{REQUEST_URI} !^(.*)?wp-login\.php(.*)$ [OR] # 管理画面ではない場合 RewriteCond %{REQUEST_URI} !^(.*)?wp-admin$ # リダイレクト(リダイレクト先は書き換えてください) RewriteRule ^(.*)$ http://redirect-domain.com/$1 [R=301,L] </ifModule>
追記
私が最初に回答した時の記述が正しく動作しないものだったので修正したものを追記しました。
実際に検証してみましたが、私の環境では問題なく動作しているのでおそらくこれで大丈夫だと思います。
(http:/0.0.0.0/はご自身の環境に合わせて書き換えてください)
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} !^(.*)?wp-login\.php RewriteCond %{REQUEST_URI} !^(.*)?wp-admin RewriteRule ^(.*)$ http://0\.0\.0\.0\/$1 [R=301,L] </ifModule>
投稿2016/04/21 14:27
編集2016/07/08 02:54総合スコア617
0
こんにちは。
特定のディレクトリをリダイレクトから穣害するために、ひろく用いられている方法と、少々変則的な方法のふたつを紹介させていただきます。
1)ルートディレクトリのみに「.htaccess」を配置する方法
RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} !(^/wp-admin/) RewriteRule ^$ リダイレクト先URL/ [R=301,L]
2)ルートディレクトリと除外したいディレクトリのそれぞれに「.htaccess」を配置する方法
まず、ルートディレクトリに
RewriteEngine on RewriteBase / RewriteRule (.*) リダイレクト先URL/$1 [R=301,L]
と記述した「.htaccess」を配置する。
つづいて、wp-admin フォルダ内に
RewriteEngine off
と記述した「.htaccess」を配置する。
以上、ご参考いただければ幸いです。
投稿2016/04/23 02:16
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
WP関連ファイルは全体的に除外する必要が在るのではないでしょうか。
RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} ^/wp-admin/ RewriteCond %{REQUEST_URI} ^/wp-content/ RewriteCond %{REQUEST_URI} ^/wp-includes/ RewriteCond %{REQUEST_URI} ^/.htaccess #RewriteCond %{REQUEST_URI} ^/index.php RewriteCond %{REQUEST_URI} ^/info.php RewriteCond %{REQUEST_URI} ^/license.txt RewriteCond %{REQUEST_URI} ^/readme.html RewriteCond %{REQUEST_URI} ^/readme-ja.html RewriteCond %{REQUEST_URI} ^/wp-activate.php RewriteCond %{REQUEST_URI} ^/wp-blog-header.php RewriteCond %{REQUEST_URI} ^/wp-comments-post.php RewriteCond %{REQUEST_URI} ^/wp-config.php RewriteCond %{REQUEST_URI} ^/wp-config-sample.php RewriteCond %{REQUEST_URI} ^/wp-cron.php RewriteCond %{REQUEST_URI} ^/wp-links-opml.php RewriteCond %{REQUEST_URI} ^/wp-load.php RewriteCond %{REQUEST_URI} ^/wp-login.php RewriteCond %{REQUEST_URI} ^/wp-mail.php RewriteCond %{REQUEST_URI} ^/wp-settings.php RewriteCond %{REQUEST_URI} ^/wp-signup.php RewriteCond %{REQUEST_URI} ^/wp-trackback.php RewriteCond %{REQUEST_URI} ^/xmlrpc.php RewriteRule ^(.*)$ リダイレクト先URL/$1 [R=301,L]
追記:
WordPress 側でリダイレクトしてしまうとか。
functions.php
PHP
1function load_script() { 2 if ( !( is_admin() 3 || is_blog_admin() 4 || is_user_admin() 5 || is_network_admin() 6 || is_404() 7 || is_preview() 8 ) && ( 9 is_home() 10 || is_front_page() 11 || is_archive() 12 || is_category() 13 || is_tag() 14 || is_tax() 15 || is_author() 16 || is_date() 17 || is_year() 18 || is_month() 19 || is_day() 20 || is_time() 21 || is_post_type_archive() 22 || is_search() 23 || is_singular() 24 || is_single() 25 || is_page() 26 || is_attachment() 27 || is_page_template() 28 || is_paged() 29 ) 30 ) { 31 header ( 'HTTP/1.1 301 Moved Permanently' ); 32 header ( 'Location: '.'http://リダイレクト先URL'.$_SERVER['REQUEST_URI'] ); 33 exit(); 34 } 35} 36add_action( 'init', 'load_script' );
投稿2016/04/21 09:57
編集2016/04/22 04:28総合スコア69583
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/04/21 10:41 編集
2016/04/21 10:48
2016/04/21 13:49
2016/04/21 14:35
2016/04/22 00:37
2016/04/22 04:32
2016/04/26 08:54
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/04/22 00:38
2016/04/22 03:38 編集
2016/04/26 08:53
2016/04/26 10:01 編集