• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:RewriteCondとRewriteRuleについて)

RewriteCondとRewriteRuleについて

このQ&Aのポイント
  • ローカル環境での.htaccessファイルの設定で、RewriteCondとRewriteRuleの使い方について説明します。
  • 特定の条件に一致しない場合にリダイレクトを行う.htaccessの設定で、否定条件を用いた書き方がエラーとなる原因について解説します。
  • RewriteCondの条件式の正しい記述方法と、特定のパス以外を対象としたリダイレクトの設定方法を確認しましょう。

質問者が選んだベストアンサー

  • ベストアンサー
  • t-okura
  • ベストアンサー率75% (253/335)
回答No.2

> RewriteRule ^(.*)$ /index.php/$1 [L] 紹介された例(サイトの最上位ディレクトリ)とコンテンツの配置が 違っています。 ci ディレクトリの下なので RewriteRule は下記になるはずです。 RewriteRule ^(.*)$ index.php/$1 [L]

takagoo100
質問者

お礼

ご返答ありがとうございます。 なるほど、場所が違うのでそのまま書くと駄目なわけですね。 お陰様でできました。ありがとうございます。

その他の回答 (1)

  • t-okura
  • ベストアンサー率75% (253/335)
回答No.1

> RewriteRule ^(.*)$ ccc/$1 [L] が繰り返し適用され、ループしているようです。 下記でいかがでしょうか。 RewriteEngine On RewriteBase /bbb RewriteRule ^ccc/ - [PT] RewriteCond $1 !^(b\.html)$ RewriteRule ^(.*)$ ccc/$1 [L]

takagoo100
質問者

お礼

ご返答ありがとうございます。 そのやり方でできました。ありがとうございます。 それを応用してCodeIgniterとフレームワーク(ジャンルが違って申し訳ありません・・・) をindex.phpを省略した形で実行できないかと試していたのですができませんでした・・・ ¥┬index.html   └ci┬index.php .htaccess      └system┬            └application┬                    └controllers─welcome.php 上のような階層でciディレクトリの中のindex.phpにアクセスすることによって welcome.phpが実行できます。 http://localhost/ci/index.php/welcome とアクセスするとちゃんとできるのですが、.htaccessに RewriteEngine on RewriteCond $1 !^(index\.php|images|robots\.txt) RewriteRule ^(.*)$ /index.php/$1 [L] と書いてindex.phpを省略(http://localhost/ci/welcome)してアクセスすると Object not found! 要求された URL は本サーバでは見つかりませんでした。 もし手入力で URL を入力した場合は、綴りを確認して再度お試し下さい。 というエラーが出てできません。 http://userguide.cilab.info/general/urls.html のサイトに省略の仕方が載っていてそのまま試したつもりなのですが・・・ これだけの情報だけで申し訳ないのですが、ここからエラーの原因を推測できるのでしょうか?

関連するQ&A