- ベストアンサー
.htaccess 301リダイレクト
- 現在運営しているホームページのURL正規化を.htaccessに記述しようとしています。
- しかし、.htaccessファイル内のindex.htmlに関する部分を削除したところ、営業日カレンダーが表示されなくなってしまいました。
- お知恵を頂きたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
カレンダープログラムのどこかに print "HTTP/1.0 403 Forbidden"; といった形で403ステータスを出力している所がありませんでしょうか。 あれば、その直前の判定処理がヒントになるのですが...
その他の回答 (1)
- t_ohta
- ベストアンサー率38% (5238/13705)
同じリダイレクトの処理を入れて実験してみましたが、私の手元の環境では問題がありませんでした。 calendar.cgi の処理に何かあるのではないでしょうか。 例えば、リファラーが index.html じゃ無かったら 404エラーを出すようになっているとか。
補足
t_ohta 様 再びご回答頂きまして誠に有難う御座います。 また、お手数をお掛けして申し訳ありません。 ご回答を頂いて、エラーを確認してみましたところ「403」でした。 <確認した内容> ・問題のhtaccessファイルを設置しindex.htmlを表示 ⇒iframe部分に403エラー表示 ・問題のhtaccessファイルを設置しブラウザで直接CGIにアクセス ⇒403エラー ・index.html関連の記述を削除したhtaccessファイルを設置 ⇒indexのiframeも直接アクセスも◎ 仰るようにCGI側の問題のようです。 ※この時点でほぼ諦めムードなのですが・・・ 到底私のスキルでは無駄だと分かっていますが、CGIのソースを眺めてみました・・・が やはり???でした。 それらしいところといえば ------------------------- #HTML出力 sub print_html { local($html) = @_; &jcode'convert(*html, $output_code); print "Content-type: text/html\n\n"; print $html; } ------------------------- とか ------------------------- #カレンダー表示 sub show { local($html); local($calender); ------------------------ とか ------------------------ 数箇所にある #表示 &print_html($html); ------------------------ くらいしか。
お礼
ご連絡有難う御座います。 ご指摘頂いた内容をもとにソース内を再度確認したのですが、該当または類似するようなエラー判定は見受けられませんでした。 的外れなのかもしれませんが「print」が記述されているのは以下でした。 ----------------------- sub print_html print "Content-type: text/html\n\n"; print $html; &print_html($html); -------------------------- ※その他のprintは年月日取得表示&休日・更新記録用ファイルの更新に関連するものでした。 最終的には、 カレンダーをiframeで表示させるのを諦めカレンダー表示用のボタン画像などを設置し、クリックアクション(window.open)でカレンダーを別窓で開くようにするか、ユーザビリティー重視でindex有り無しを諦める(現状のままm)か どちらかになるのかな~と思っております。 ご回答有難う御座いました。