超ハマッタ。
やっと解決。
解決の糸口となったブログ様に感謝。。。
RewriteBaseは重要です!
参考:http://d.hatena.ne.jp/hyshhryk/20080927/1222456320
・・・と、なんかこれだけ書いてもなんだかなーという感じだったので、以下に詳細を書きます。
誰かの役に立てれば幸いです。
まぁ教えてgooで質問したんですけどね。
そこから引用します。
–引用ここから
【環境】
・windows xp sp2
・xampp(apache 2)
【httpd.confの設定】
DocumentRoot “J:\foo”
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
※)Jドライブは外付けHDDです。
【現象】
1.DocumentRootの「J:\foo」に.htaccessを設置した場合
1)http://localhost/でアクセス
→機能します
2)http://localhost/ver/でアクセス
→機能します
※)DocumentRootに.htaccessを設置した場合、通常の動作になる。
(サブディレクトリにもDocumentRootに設置した.htaccessの設定が有効になる)
2.「J:\foo\ver」に.htaccessを設置した場合(DocumentRootの.htaccessは除去)
1)http://localhost/ver/でアクセス
→機能しません
「2」を機能させたいのですが、どのような設定が必要なのでしょうか。
尚、念の為.htaccessの内容を以下に記します。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.html [L,QSA]
–以下、自己レス
原因は.htaccessにRewriteBaseを設定していなかったことでした。
RewriteBase /foo
を追加することで解決いたしました。
今回の.htaccessの設定では、存在しないリクエストを全てhttp://localhost/index.htmlにRewriteしようというものでした。
1.RewriteBaseを書かなかった場合
→http://localhost/ver/aaaaa (存在しないURL)
結果:404となる。(http://localhost/foo/index.htmlにrewriteしてしまう)
2.RewriteBaseを書いた場合
→http://localhost/ver/aaaaa (存在しないURL)
結果:http://localhost/index.htmlにrewriteされる
RewriteBaseでベースとなるURL(今回の場合は/foo)を教えてあげないといけないとのことでした。
–引用ここまで
関連するかもしれない記事
- WordPress -.htaccessにRedirect処理を追加
- Apache ネゴシエーション
- 【sitemix】ブログモード(wordpress)での.htaccessの修正について
- Apache 自宅サーバにおけるバーチャルホストの設定
- さくらインターネット Zend Frameworkの導入 .htaccessの設定でつまづく
他のブログも読む



0 Responses
Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.