🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
さくらのレンタルサーバ

さくらのレンタルサーバとは、格安サーバーで知られるさくらインターネット社の提供する共有レンタルサーバー。Webサイトの構築から簡単なプログラミングまで幅広く利用することができ、プランが多いことも特徴です。

リダイレクト

プログラムの入力元や出力先を通常とは別の場所に転送させることをリダイレクトと呼びます。

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

Q&A

解決済

1回答

1656閲覧

htaccessでの移転がベーシック認証時、うまくかからない

nknnqwertv

総合スコア48

さくらのレンタルサーバ

さくらのレンタルサーバとは、格安サーバーで知られるさくらインターネット社の提供する共有レンタルサーバー。Webサイトの構築から簡単なプログラミングまで幅広く利用することができ、プランが多いことも特徴です。

リダイレクト

プログラムの入力元や出力先を通常とは別の場所に転送させることをリダイレクトと呼びます。

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

0グッド

0クリップ

投稿2021/02/06 10:41

編集2021/02/06 11:23

レンタルサーバーはさくらです。
以下のヘルプにある記載をそのまま利用しました。
hoge.com/.htaccess(xxxx.sakura.ne.jp/.htaccess) に記載おいています。

https://help.sakura.ad.jp/206054622/
初期ドメインにアクセスがあった場合独自ドメインへリダイレクトさせたい

さくらの契約済に独自ドメインは設定済で、
xxxx.sakura.ne.jp/hage.htmlなどにアクセスした場合に、hoge.com/hage.htmlに転送させたい という趣旨なのですが、以下の結果になります。

  • xxxx.sakura.ne.jp → hoge.com 転送される
  • xxxx.sakura.ne.jp/hage.html → hoge.com/hage.html 転送される
  • xxxx.sakura.ne.jp/basic/hage.html → hoge.com/basic/hage.html 転送されずURLそのまま(ベーシック認証される)
RewriteEngine On RewriteCond %{HTTP_HOST} ^(www.)?[^.]+.sakura.ne.jp$ [NC] RewriteRule .* http://www.example.jp%{REQUEST_URI} [R=301,L]

諸条件を再確認したところ、
xxxx.sakura.ne.jp/basic/.htaccess ここにベーシック認証を記載しており、このフォルダ以下が移転しない、が正確でした。

htaccess

1AuthName "test" 2AuthType Basic 3AuthUserFile /xxx/basic/.htpasswd 4Require valid-user

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nknnqwertv

2021/02/06 11:24

はいそうです。→でした。 気になることが出たため再度調べたところ、全部が飛ばないのではなくて、ベーシック認証のフォルダがダメでした。(URLは変わりません)誤記大変すいません。ご確認指摘ありがとうございました。
otn

2021/02/06 11:27

/basic/.htaccess にも、RewriteEngine On がありませんか?
nknnqwertv

2021/02/06 11:30

あります。 <Files .htaccess> order allow,deny deny from all </Files> 上記ソースに記載の内容 <IfModule mod_rewrite.c> RewriteEngine on RewriteBase /basic/ RewriteRule XXX XXXX~~ </IfModule> という順番です。
guest

回答1

0

ベストアンサー

リライトの指定は、デフォルトでは上位ディレクトリの指定とマージされず、そのディレクトリでの記述だけが有効です。
方法1:/basic/.htaccessにもドメインリダイレクトの記述を追記する
方法2:/basic/.htaccessに、RewriteOptions Inheritとか書いて、上位ディレクトリから継承する

参考:
rewriteoptions - Apache HTTP Server Version 2.4

継承方法が複数あるので、適切な指定を選ぶ。

投稿2021/02/06 11:47

otn

総合スコア85882

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nknnqwertv

2021/02/06 12:00

大変ありがとうございました。方法1で解決いたしました。 今までルート以外においたことがなかったので、継承についてきちんと理解していませんでした。今後の参考とさせて頂きます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問