2016-12-27 21 views
1

私はFortと呼ばれる.htaccessファイルを親ディレクトリに持つ文書構造を持っています。同じディレクトリに、publicという名前のフォルダがあります。私はそのpublicディレクトリにbootstrap.phpスクリプトを持っています。私はMAMPを使用していますが、デフォルトのURLはlocalhost:8888/Fort/に設定されている.htaccessはルートディレクトリを書き換えません

RewriteEngine On 

RewriteBase /Fort 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

RewriteRule ^(.+)$ bootstrap.php?url=$1 [QSA,L] 

:ここ

は私.htaccessコードです。

マイbootstrap.phpスクリプトは、このコードを持っています

<?php 

echo $_GET['url']; 

何らかの理由で、私はURLを渡すときはlocalhost:8888/Fort/foo/barを言って、私のbootstrap.phpスクリプトはfoo/barとしてURLを返します。しかし、私がURL localhost:8888/Fort/を渡すと、403 Forbiddenエラーが発生し、bootstrap.phpスクリプトがロードされません。

答えて

3

良い質問!すべての情報をありがとう。

変更これまでの最後の行:

RewriteRule ^(.*)$ bootstrap.php?url=$1 [QSA,L] 

あなたがそこに書き換えが一致するため、空の文字列であり、実際に存在したときに、一個の以上の文字を意味し+に一致して/Fort/訪問文字がないので、トリガーされませんでした。 *に変更すると、問題を修正する文字が0個以上現れ、/Fort/が予想通りに一致するようになります。

+0

私はこのコードを使用するとエラーはありませんが、代わりに通常のapacheディレクトリルートを取得します。私の 'bootstrap.php'スクリプトが物事をエコーアウトできるように、どうすれば修正できますか? –

+0

'RewriteCond%{REQUEST_FILENAME}!-d'行を削除してみてください。あなたが尋ねたエラーを修正したので、私の答えを受け入れてください。 – SuperDuperApps

+0

@ user249325それを修正しました!ありがとう! –

関連する問題