私は単純なPHP RESTアプリケーションを作成しましたが、静的ファイルの提供に問題があります。.htaccess - PHPファイルとして扱われた画像ファイル
- 公共
- コンテンツ(ここにある静的ファイル)のindex.php
- SRC
- (私のアプリケーションのソース)
- ベンダー(作曲を次のように私のディレクトリ構造は見えます依存関係)
ルートの.htaccess
RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]
公共の.htaccess(標準スリムテンプレート)
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule^index.php [QSA]
これらの設定:ルートディレクトリ内や公共のディレクトリに - 10私は私のプロジェクトに2つの.htaccessファイルを持っています私はすべてのリクエストをパブリックディレクトリにリダイレクトしたいと思っていたので、そのリクエストの部分を省略してhttp://host.com/rest/XXXを代わりにhttp://host.com/rest/public/XXXにする必要があったからです。
今私はhttp://host.com/rest/content/file-test.extを使用してファイルにアクセスすることはできません - 私はエラーを取得しているので、それはPHPファイルとして扱われているようにそれはそう:私はすでにRewriteEngine off
かとコンテンツディレクトリ内の別々の.htaccessファイルを入れてみました
Warning: Unexpected character in input: '' (ASCII=30) state=0 in /rest/public/content/file-test.ext on line 298
Parse error: syntax error, unexpected '@' in /rest/public/content/file-test.ext on line 298
php_flags engine off
。
ホスティングは、私もすべての変更を要求することはできません第3部の人によって提供されているので、私は、任意のWebサーバの設定を変更することはできません。 host.com/rest私は私のドキュメントルートに設定すると、私はFTP経由で接続したときにウェブサーバの設定変更に関するソリューションは、私の場合には正しくないので、私はそのディレクトリから上方に行くことはできません。
静的ファイルが正常に動作するように手伝ってください。
、なぜしないでください書き換えを行うのではなく、 '/ rest /'をルートに追加するだけです。そして、ちょうど '/公共/ content'を指すように' /休憩/ content'のエイリアスを設定しますか?一つの提案は、あなたのWebルートをパブリックフォルダに向け、ソースコードをWebルートの外側に置くことです。 –
@MagnusEriksson - 私はすでに '/ rest/method'として指定されたルートを持っています。エイリアスはどういう意味ですか?スリム要求を特定のディレクトリに渡してファイルストリームを返す方法を知っていますか?私はパブリックディレクトリをコンテンツルートに設定することはできません。なぜなら、サーバーは私によって管理可能ではなく、その変更を要求する機会がないからです。 –
Webサーバーにはパブリックフォルダがドキュメントルートとして設定されている必要があります。 –