Re: リダイレクト
2015年7月10日 at 13:01
Webサーバの情報とかお判りになりますでしょうか?
また、プリティURLを有効にした際に、.htaccessの設定情報が表示されたと思いますので、
そちらを開示して頂けると、正確な回答ができると思います。
そして、お困り事は具体的にはどういった事でしょうか?
以下、一般的な設定だとした場合の回答に成ります。
1)「xxxxxxx.co.jp」と入力しEnterで、「xxxxxxx.co.jp/index.php」にリダイレクト
こちらは、ドメインの後ろに/を付けないでアクセスした場合、
Webサーバ側から、Locationヘッダーというヘッダー情報がついた、レスポンスが返却されます。このヘッダー情報がついていると、ブラウザーはその通知されたURLにリダイレクト要求をします。(HTTPステータスは302が返っていると思います)
その通知のURLは、「xxxxxxx.co.jp/」と「/」が最後に付いたURLが返却されていると思います。
そして、ブラウザーはWebサーバの要求に応じて「xxxxxxx.co.jp/」にアクセスするのですが、
今度は、DirectoryIndexディレクティブの設定に従って、
「xxxxxxx.co.jp/index.php」等へのリダイレクトが発生していると思います。
2)下層ページ「xxxxxxx.co.jp/sample」と入力しEnterでは、index.phpにリダイレクトされることなく、「xxxxxxx.co.jp/sample」が表示
こちらは、Rewriteルールの設定次第で、そのURLがブラウザーが返却できるコンテンツがある場合は、リダイレクトせずにそのコンテンツを返す
という設定がされていれば、「1」とは挙動が異なる動きを設定できます。
(「1」はドキュメントルートへの要求リクエストですので、厳密にはmod_rewriteによるリダイレクトルールとは別の話しですが)
ぽき
Re: リダイレクト
.htaccessは下記の通りです。
# -- concrete5 urls start --
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}/index.html !-f
RewriteCond %{REQUEST_FILENAME}/index.php !-f
RewriteRule . index.php [L]
</IfModule>
# -- concrete5 urls end --
で、困っているのは、オートナビで作られた各ページへのリンクには、ひとつも「index.php」がついていないにも関わらず、その中のホームのみクリックすると「index.php」にリダイレクトされてしまいます。
もちろん、手入力した場合でも同様です。
ドメイン名の最後に「/」はありません。
で、「index.php」は表示したくないだけなのです。
疑問点を具体的に書きますと、プリティURLを有効にしているので、「http://xxxxxxx.co.jp/sample」をクリックしても「http://xxxxxx.co.jp/index.php/sample」にはリダイレクトされず、「http://xxxxxxx.co.jp/sample」でアクセスできます。
なのに、ホームの「http://xxxxxxx.co.jp」にアクセスすると、「http://xxxxxxx.co.jp/index.php」にリダイレクトされてしまうのは、何がいけないのでしょうか?