htaccessファイルにて、mod_rewriteを使って比較的シンプルなURL操作を行おうとしましたが、500エラーや思わぬ方向に飛んで404エラーが出るなどでmod_rewriteの記述方法で困っております。
ぜひともご回答よろしくお願いいたします。
設定状況は、投稿の最後に【前提条件】でまとめましたので、まずは【目的】と【困っていること】からお話いたします。
【目的】
1)URLとして「http://xxx.jp/hoge/huga」にアクセス
2)上記1)のURLはそのままで、/hoge直下にあるindex.phpにアクセスして処理を要求
(※ここで「huga」はどうするのかといえば「$SERVER['REQUEST_URI']」
で取得し処理内パラメータで使う)
3)上記1)のURLはそのままで、index.phpからのレスポンスをブラウザに送る
【困っていること】
mod_rewriteの記述方法が間違ってるのは言うまでもないですが、
こういったケースでの記述方法が見当つきません。
〇実際にどのような不都合が出ているか・・・?
Case1) /hoge/hugaが消えてしまい「/hoge/」だけになってしまう
Case2)HTTP500エラー出力
(/var/log/httpd/error.log より) Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
Case3)「/hoge/huga」というファイルがないため、HTTP404エラーが出る。
以上となります。
ご提案や指摘がございましたらぜひともご回答よろしくお願いいたします。
【前提条件】
(1)システム要件
OS = CentOS 6.7(Final)
WWWサーバ = Apache 2.2.15
言語 = PHP 5.3.3
(2)httpd.confの設定
<Directory /hoge/public_html/> AllowOverride All Order allow,deny allow from all Options -Indexes </Directory>
(3)PHPソースとhtaccessのファイル位置
/hoge/public_html
┣ .htaccess
┗ index.php
(4)上記(3)htaccessの記述内容
RewriteEngine on #URLの「/huga」がかき消されて、index.phpにアクセスされる例 RewriteRule (.*)/$ index.php?%{QUERY_STRING} [L] #エラーが出てしまう例 #”Request exceeded the limit of 10 internal redirects due to probable configuration error.” RewriteRule (.*)/$ index.php/$1 [L]
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。