質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

リダイレクト

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

.htaccess

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

Q&A

1回答

2845閲覧

.htaccessについて重複するような場合、優先されるのはどれですか

miva

総合スコア14

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

リダイレクト

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

.htaccess

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

0グッド

0クリップ

投稿2018/09/08 03:00

編集2018/09/08 03:01

以下のような内容を全て含めた場合に、順番に認識されて反映されるものなのでしょうか?
実際にこのように設置して思い通りに動作しないのです。

RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

RewriteRule ^(.*) /wordpress/$1 [R=301,L]
RewriteRule ^/index.html$ /wordpress/index.php [R=301,L]

<条件>
・http:// でアクセスされたら https:// へ
・www.abc.com へのアクセスがあったら全て www.abc.com/wordpress/ へ
・www.abc.com/index.html  へのアクセスがあったら www.abc.com/wordpress/index.php へ

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

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

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

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

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

CHERRY

2018/09/08 04:45 編集

基本、上から順です。 思い通りにいかないとは、どのように動作しないのでしょうか?
miva

2018/09/08 04:56

http:// でアクセスされたら https:// へ は上手く機能していますが、 www.abc.com/test/test2/index.html のときに  www.abc.com/wordpress/test/test2/index.html へ飛ばなかったりなのです www.abc.com/test/ のときに www.abc.com/wordpress/test/ へ飛ばなかったりなのです
tonkun4os

2018/09/08 07:37

wordpressにはパーマネントURLの設定がありますがそちらは設定されてます?
otn

2018/09/08 09:56

「飛ばなかった」というのは、URLに変化は無かったと言うことですか?
guest

回答1

0

RewriteRule ^(.*) /wordpress/$1 [R=301,L]

は、見るからにループしそうです。
あと、上から順番なので、/index.html^(.*)にマッチして、最後の行には到達しません。

Apache

1RewriteRule ^/index.html$ /wordpress/index.php [R=301,L] 2RewriteCond %{REQUEST_URI} !^/wordpress/ 3RewriteRule ^(.*) /wordpress/$1 [R=301,L]

投稿2018/09/08 10:04

編集2018/09/14 07:14
otn

総合スコア84538

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

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

miva

2018/09/21 07:33

遅くなりすみません。回答ありがとうございます。 上から順番ということは、上から適応されて適応されたものは、それ以下に掛かれている記述は無効となるのでしょうか? 後書きした方が上書きされて優先されるものだと思い込んでいました
miva

2018/09/21 07:43

/index.html のときは、/wordpress/index.php へという指示として それ以外は、 RewriteRule ^(.*) /wordpress/$1 [R=301,L] としたい場合は、 RewriteCond %{REQUEST_URI} !(^/index.html) RewriteRule ^(.*) /wordpress/$1 [R=301,L] とすれば良いものでしょうか?
otn

2018/09/21 14:16

> /index.html のときは、/wordpress/index.php へという指示として >それ以外は、 >RewriteRule ^(.*) /wordpress/$1 [R=301,L] >としたい場合は、 って、常に RewriteRule ^(.*) /wordpress/$1 [R=301,L] ということでは?
miva

2018/09/25 03:04

恐れ入ります /index.html のときは、/wordpress/index.php へという指示は打ち消されるというものでしょうか /index.html 時だけ除外ということにしたいのですが間違っていますか?
otn

2018/09/25 03:12

除外とは?
miva

2018/09/25 03:16

RewriteCond %{REQUEST_URI} !(^/index.html) とすれば、/index.html だけは 以下の条件に適応されないというものだと思っていました RewriteRule ^(.*) /wordpress/$1 [R=301,L] 記述例 RewriteCond %{REQUEST_URI} !(^/index.html) RewriteRule ^(.*) /wordpress/$1 [R=301,L]
ssasaki

2018/09/25 03:27

横から失礼。 index.htmlについてはその通りだと思いますが、わざわざ設定する必要がありますかね? RewriteRule ^(.*) /wordpress/$1 で、index.html は /wordpress/index.html に rewrite されるので、あとは /wordpress/index.html の時に /wordpress/index.php が参照されれば良いだけですよね。 これはよくある設定では? ちなみに、眺めただけなので外しているかもしれませんが、修正版でもループしそうな気がします。 rewrite設定は、うまくいかない場合には1行ずつ足して試行錯誤していくことをお勧めします。
otn

2018/09/25 03:30

> とすれば、/index.html だけは 以下の条件に適応されないというものだと思っていました それは合ってます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問