###前提・実現したいこと
Apacheモジュールを利用して指定のディレクトリ以下のアクセスを
全てトップページにリダイレクトさせたく、そのテストをxampp上で行っています。
###発生している問題・エラーメッセージ
トップページのパス)
/Applications/XAMPP/xamppfiles/htdocs/mvctest/
ここにリダイレクトさせたいのですが、現状は...
現状)
localhost/xampp/
ここにリダイレクトされています。
###ソースコード
lang
1// .htaccessの記述 2<IfModule mod_rewrite.c> 3RewriteEngine on 4RewriteBase /Applications/XAMPP/xamppfiles/htdocs/mvctest/ 5RewriteCond %{REQUEST_URI} !^/index.php$ 6RewriteRule ^(.*)$ /index.php [L,R] 7</IfModule>
###補足情報(言語/FW/ツール等のバージョンなど)
XAMPPのバージョンは1.8.3-5、
mod_rewriteの初期設定(httpd.conf)は実施済です。
解決方法または試した方がよいことについてご教示いただければ幸いです。
宜しくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/06/15 00:13
2015/06/15 00:16
回答2件
0
ベストアンサー
/Applications/XAMPP/xamppfiles/htdocs/mvctest/
このパスは、URLのパスではなく、ホストの実際のパスではないでしょうか?
(xampp 使ったことはないですが、DocumentRoot が / などということは無いと思うので)
RewriteBase は、ホストの実際のパスを指定するのではなく、URL のパスを指定します。
なので、例えば以下のように指定するはずです。
RewriteBase /
もしくは次のようにでしょうか?
RewriteBase /mvctest
具体的なディレクトリ構成がわからないので、どちらが正しいかは回答できません。
また、そもそも RewriteBase は、そのディレクトリ(.htaccess を置いているディレクトリ)が、どのような URL (のパス)でアクセスされるのかを Apache が判断できないような状況(Alias とかシンボリックリンクとか)で、Apache にそれを教えてあげるために使うものなので、.htaccess を置いているディレクトリが DocumentRoot の中のディレクトリにあるなら、指定する必要はありません(Apache が RewriteBase を自動的に判断できるためです)。
.htaccess は下記に保存してください。
/Applications/XAMPP/xamppfiles/htdocs/mvctest/
.htaccess の内容は以下のようにしてください。
RewriteCond を使う必要はありません。
RewriteBase もそのディレクトリ構成なら必要ないはずです。
RewriteEngine on RewriteBase /mvctest/ RewriteRule ^index\.php$ - [L] RewriteRule .* index.php [L,R]
もし、本当に localhost/xampp/
というパスにリダイレクトされるのであれば、ブラウザのキャッシュをクリアしてみてください。
(Permanent なリダイレクトをブラウザが覚えているのかもしれません)
余談ですが、これって index.php がフロントコントローラーなMVCなのではないのでしょうか?
もしそうなら、いわゆるリダイレクトをするのはおかしいような気がしますけど。
主要なフレームワークの大半が mod_rewrite でフロントに振り分けているので、そういうのからパクってくると良いですよ。
CakePHP とか超シンプルでわかりやすいです。
https://github.com/cakephp/app/blob/master/webroot/.htaccess
Symfony は複雑すぎて参考になる気がしません・・・
https://github.com/symfony/symfony-standard/blob/2.8/web/.htaccess
投稿2015/06/15 02:04
編集2015/06/15 06:24総合スコア4514
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/06/15 02:30
2015/06/15 02:33
2015/06/15 02:48
2015/06/15 02:55
2015/06/15 04:32
2015/06/15 04:54
2015/06/15 05:36
2015/06/15 06:17
2015/06/15 07:26
0
質問の内容が正確でないとしか思えないです。
現状)
localhost/xampp/
こにリダイレクトされています。
xamppなどというディレクトリは、どこにもないので、それはあり得ない。
投稿2015/06/15 04:11
総合スコア84423
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/06/15 04:23
2015/06/15 04:35
2015/06/15 04:36
2015/06/15 05:05
2015/06/15 05:46
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。