2011-08-07 8 views
2

私はZendFrameworkの.htaccess

# Rewrite rules for Zend Framework 
RewriteEngine on 
RewriteRule ^(.*)$ /public/$1 [QSA,L] 

それが正常に動作しますが、私のログは、いくつかのボットは、ファイルロボットにアクセスしようとすることを私に報告をdomain.com/public/ために私domain.com/を書き換える以下の.htaccessを持っています.txtと存在しません。

私がURLにアクセスした場合:http://domain.com/robots.txt

を動作しませんが、私は完全なURLにアクセスする場合、それは私が.htaccessファイルに間違ってやっている何http://domain.com/public/robots.txt

動作しますか?

+1

私の問題を解決しましたか? DOCUMENT_ROOTの中に 'public 'の何もないはずはありません。より大きな既存のサイトインフラストラクチャに統合する必要がある単一のZendアプリケーションを持っている場合は、その構造内の 'public'にあるものだけを置き、設定したとおりに実行するように設定を変更します。 – prodigitalson

+1

私はホスティングを共有しているため、私はzendframeworkアプリケーションをopen_basedir制限のために1レベル下に置くことはできません。 – dextervip

+2

次に、ホストを切り替える必要があります。 DOCUMENT_ROOTにアクセスできるのは、この日および受諾可能な状況ではありません。 – prodigitalson

答えて

1

次のコードは、まさにあなたがこれをやっているのはなぜ

# Rewrite rules for Zend Framework 
RewriteEngine on 
Redirect permanent /robots.txt /public/robots.txt 
Redirect permanent /favicon.ico /public/favicon.ico 
RewriteRule ^(.*)$ /public/$1 [QSA,L] 
0

あなた自身の質問に答えたと思います。 robots.txtを.htaccessファイルと同じディレクトリに移動します。

また、アプリケーション/ライブラリのフォルダを1つ上のレベルに移動して、パブリックアクセスから直接アクセスしないようにする必要があります。

+0

robots.txtを1レベル下に移動するとhtaccessは常に/ publicに書き換えられます – dextervip

3

この投稿を見てください。アドバイスとして

http://www.alberton.info/zend_framework_mod_rewrite_shared_hosting.html

はしかし、私はあなたのパブリックフォルダへのあなたのDocumentRootのポイントので、別のホストに移動することをお勧めします。

+0

これは私の古いコードと同じ効果があります。私はエラーが表示され続けます:メッセージ:無効なコントローラが指定されました(robots.txt) – dextervip

関連する問題