人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Apacheのmod_rewriteについての質問です。
環境はApache2.2でWindowsです。

httpd.conf-----

<Directory />
Options All
AllowOverride All
</Directory>
?
LoadModule rewrite_module modules/mod_rewrite.so

sample/.htaccess------

RewriteEngine on
RewriteBase /sample/
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.html

このように設定し、Apacheの再起動を行って
http://?/sample/abcdefg
にアクセスすれば
http://?/sample/index.html
に転送されると思っていたのですが
「404 Not Found ? sample/abcdefg was not found on this server」
となります。

おそらくRewriteされていないと思われます。
これは何が原因なのでしょうか?(参考書のとおりにやったつもりですが…)
何か他に設定すべきこと、?があやしいといったことがありましたら、ぜひ教えてください。

Googleで探してみたんですがUnix系ばかりで、今回のこの事象と関係があるのかわかりません…
http://d.hatena.ne.jp/omizu/20070911/p1
http://memo.officebrook.net/20060320.html

よろしくお願いいたします。

●質問者: jun09
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:.htaccess ALL Apache CSS GIF
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● kn1967
●23ポイント

RewriteBase /sample

最後のスラッシュが不要なだけだと思うのだけど?

◎質問者からの返答

ご回答ありがとうございます。

スラッシュを変えても変わりませんでした…


2 ● easygoings
●23ポイント

基本的には、.htaccessやhttpd.confの書き方は、OSによって違いはありません。

何をしたいのか、詳しいことがいまいちサンプルでは良く分らないのですが・・・

次の内容で、お望みのことはできるかと。

.htaccessファイル自体は、webルートディレクトリに

配置してください。(xampp等をお使いなら、\htdocsかな。)

.htaccess

<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteBase /sample/
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteRule ^(.*)$ index.html [L]
</IfModule>

設定している内容は、sampleディレクトリ以下のファイル名をindex.htmlに

書き換えます。リダイレクトするわけではないので、ブラウザに表示される

URLはそのままです。

拡張子によって動作を変えたいようですが、ファイルが存在した場合、例え

ば、sample/test.jpegなどのファイルが存在した場合には、そのファイルが

表示されます。

ご参考になれば。

◎質問者からの返答

ご回答ありがとうございます。

教えていただいた方法でも試しましたが、とくに変わらず…

htaccessの設定というより、そもそもRewriteできていないと思うんです。

httpd.confの設定がおかしいのでしょうか…


3 ● heekun
●22ポイント

拡張子!拡張子!

◎質問者からの返答

ご回答ありがとうございます。

すいません、どういう意味でしょうか…?


4 ● easygoings
●22ポイント

2です。

apacheのインストールの仕方が判りませんが・・・

ドキュメントルートを"C:/xampp/htdocs"として、

httpd.conf

DocumentRoot "C:/xampp/htdocs"
・・・中略・・・
<Directory "C:/xampp/htdocs">
 Options All
 AllowOverride All
</Directory>

でも駄目ですか?

よくある失敗として、そもそも、apacheの読み込むhttpd.confじゃない

ファイルを編集していたってこともよくありますが・・・

その辺、切り分けできてますか??

◎質問者からの返答

ご回答ありがとうございます。

教えていただいたソースをコピペしても駄目で、何でだろう…とじっくりhttpd.confを見ていたら…

<Directory />

Options All

AllowOverride All

</Directory>

の下の方に

<Directory "C:/Program Files?/htdocs">

Options Indexes FollowSymLinks

Allow Override None

</Directory>

がありました。なんてこったい…

すみません。お騒がせしましたが何とか解決です。

ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ