1

.htaccessファイル Zend フレームワークの構成に問題があります。私のローカルサーバーでは、apache と Windows 7 を実行していて問題なく動作しています。

しかし、ライブサーバーで実行しようとすると表示されます403 Forbidden

これが私の .htaccess 構成です

Options +FollowSymLinks

RewriteEngine On

RewriteRule ^\.htaccess$ - [F]

RewriteCond %{REQUEST_URI} =""
RewriteRule ^.*$ /public/index.php [NC,L]

RewriteCond %{REQUEST_URI} !^/public/.*$
RewriteRule ^(.*)$ /public/$1

RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^.*$ - [NC,L]

RewriteCond $1 !^(favicon\.ico|favicon\.png|media|robots\.txt|crossdomain\.xml|css|js)
RewriteRule ^public/.*$ /public/index.php [NC,L]

Options -Indexes
4

2 に答える 2

0

.htaccessルールを単純化すれば、物事を適切に機能させることができると思います。

Zend Frameworkindex.phpファイルはおそらくにあるので、構成public_html/publicを開くhttpd.confhttpd-vhosts.conf、構成に応じて、に追加/publicしますDocumentRoot

このようにpublicして、Webアクセス可能なディレクトリになり、ZFアプリケーションファイルを含むその下のすべてが保護されます。

その変更を行った後、すべての.htaccessファイルを標準のZendFramework書き換えルールに置き換えます。

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

また、以下の項目がすべて正しいことを確認してください。そうでない場合、正しく機能しない可能性があります。

  • AllowOverride Allのpublic_htmlディレクトリに設定しますhttpd.conf
  • Chmod 644for.htaccessおよびすべてのPHPスクリプト、755ほとんどのディレクトリ
  • APPLICATION_PATHindex.phpの正しい

お役に立てば幸いです。

于 2012-06-07T05:53:49.420 に答える
0

ほとんどの場合、これは Apache ユーザーがこれらのファイルに対する読み取り権限を持っていないことが原因です。

于 2012-06-07T02:57:55.883 に答える