

お世話になります。  
特定のディレクトリのみ転送をしない設定をしたいのですが、以下htaccessの記述ではうまくいきません。  
さくらインターネットでワードプレスの管理画面だけ転送かけない。ようにしたく。  
どなたかご教示いただけないでしょうか。

除くディレクトリ：

[code]

    http://abcd.sakura.ne.jp/shoki2/wp-admin/
    
[/code]

以下2行目の書き方ではうまくいきませんでした。

[code]

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^abcd\.sakura\.ne\.jp(:80)?$
    RewriteCond %{http://abcd.sakura.ne.jp/} !(^/shoki2/wp-admin/)
    RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
    
[/code]

因みに、さくらインターネットで「初期ドメインから独自ドメインの転送の仕方」を[他の質問スレッド](https://ja.stackoverflow.com/questions/8083/%E5%88%9D%E6%9C%9F%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3-%E7%89%B9%E5%AE%9A%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA-%E3%81%8B%E3%82%89%E7%8B%AC%E8%87%AA%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E3%81%B8%E3%83%AA%E3%83%80%E3%82%A4%E3%83%AC%E3%82%AF%E3%83%88)でしていましたが、追加質問の為新規にスレッドを立てました。  
どうぞ、よろしくお願いいたします。

下記、回答ありがとうございます。htaccessは/shoki2/に置いてうまくいかなかったので、/shoki2/wp-
admin/にも置いてみましたがうまくいきませんでした。一旦ルールを終わらせてから書くとは具体的にどのように書いたらよいでしょうか。ご教示いただけますでしょうか。

[code]

    RewriteRule ^/shoki2/wp-admin/ - [L]
    
[/code]


CC BY-SA 3.0
2015-03-19T05:45:29.867
8103
2015-09-16T02:06:30.383
2017-04-13T12:52:38.920
-1
8745
question
.htaccess
特定のディレクトリのみ転送をしない設定をしたい


最初の方で

[code]

    RewriteRule ^/shoki2/wp-admin/ - [L]
    
[/code]

でルールを終わらせてから、転送のルールを設定するといいのではないでしょうか。


CC BY-SA 3.0
2015-03-19T07:29:13.637
8111
2015-03-19T07:29:13.637
4603
8103
answer

[code]

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^abcd\.sakura\.ne\.jp(:80)?$
    RewriteCond %{REQUEST_FILENAME} !^/shoki2/wp-admin/
    RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
    
[/code]

で良いでしょう。


CC BY-SA 3.0
2015-03-19T07:36:13.583
8113
2015-03-19T07:36:13.583
5793
8103
answer


もう解決しているかもしれませんが、恒久的に新規ドメイン(独自ドメイン)への転送を行いつつ、特定のディレクトリだけ「転送しない」ということであれば、簡単ですが下記のようなルールを書いた`.htaccess`をドキュメントルート(/)に配置してみてはいかがでしょうか。  
(@suzukisさんのとほぼ同じですが…)

[code]

    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_URI} !(^/shoki2/wp-admin/)
    RewriteRule ^$ http://example.com/ [R=301,L]
    
[/code]

また、一旦ルールを終わらせてから書く、というのは RewriteRule の末尾に付与するオプション **[ ]** で **L**
を指定してあげることだと思います。  
このオプション **[L]** は、条件にマッチした場合そこで判定を終了するという意味を持ちます(つまりこの後に続く RewriteRule
を評価しません)

ですので、このオプションを一連のルールの頭に持ってくることで、ルールにマッチした URL は転送処理まで辿り着かずに終了し、指定の URL
アクセスを転送設定から除外することができます。

[code]

    RewriteEngine On
    RewriteBase /
    RewriteRule ^/shoki2/wp-admin/ - [L]
    RewriteRule ^/shoki2/test1/ http://example.co.jp/test1/ [R=301,L]
    RewriteRule ^/shoki2/test2/ http://example.co.jp/test2/ [R=301,L]
    RewriteRule ^/shoki2/test3/ http://example.ne.jp/test3/ [R=301,L]
    RewriteRule ^/shoki2/test4/ http://example.ne.jp/test4/ [R=301,L]
    RewriteRule ^/(.*)$ http://example.com/$1 [R=301,L]
    
[/code]


CC BY-SA 3.0
2015-06-18T00:55:51.250
11452
2015-06-18T01:30:16.410
2015-06-18T01:30:16.410
10006
10006
8103
answer