2011-07-01 5 views
5

私には奇妙な問題があります。私は、Zend Frameworkのアプリケーションを開発し、このファイル構造を持っている:htaccessはフォルダに予期せずリダイレクトされます

/ 
/application/ 
/public/ 
/public/.htaccess 
/public/index.php 
/public/js/ 
/public/style/ 
/public/profile/ 
/.htaccess 

私のドメイン・ポイントはfolder /

に私はそれがコントローラプロファイルに行くと、これは良いですが、アドレスexample.com/profile/を入力します。私はアドレスexample.com/profileを入力すると サーバがに私をリダイレクトします。 example.com/public/profile/

私は私が要求する場合、必ずことを解決したいと思います: example.com/profile/または example.com/profile

を同じページがレンダリングされますが、2番目のバージョンは提供します私はリダイレクトして、私は理由を知らない。

/.htaccessファイルは次のとおりです。

RewriteEngine On 
RewriteRule ^(.*)$ public/$1 [L] 

このファイルの役割がルートに/へ/公衆からではなく任意のリダイレクトなしですべてのトラフィックです。

/public/.htaccessファイルは次のとおりです。

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

誰もがこれで私を助けることができますか?ありがとう。


これを修正しました。ここで誰かが同じ問題を抱えている場合解決策は以下のとおりです。 この問題を解決するには、あなたがDirectorySlash

Options -Indexes FollowSymLinks 
DirectorySlash Off 

を次のオプションを設定し、無効にする必要がありますが、ディレクトリを指したときに今、Apacheは、URIの末尾にスラッシュを追加しないでください。 これはまた、後ろにスラッシュを付けたuriへのリダイレクトを無効にします。

+0

あなたは するRewriteCondの%{REQUEST_FILENAME}でRewriteEngineは-s '試す[OR] するRewriteCondの%{しない理由あなたの最初のバージョンの '.htaccess'で、RewriteRule ^(。*)$ public/index.php [L]'を実行しました –

+0

Apacheログにエラーがあります:要求が内部リダイレクト10回を超えました – Marcin

+0

外部のhtaccessへのコード:RewriteEngine On のRewriteRule^$パブリック/ $ 1 するRewriteCondの%{REQUEST_FILENAMEは} -s [OR] するRewriteCondの%{REQUEST_FILENAMEは} のRewriteRuleを-l^* $(*) - [NC、L] のRewriteRule^* $。 index.php [NC、L]そして今私は多くの内部リダイレクトのために内部サーバーエラーが発生しました... – Marcin

答えて

1

オプションで最後の/と一致します。あなたの.htaccessファイルには、これに変更します。

RewriteEngine On 
RewriteRule ^(.*)/?$ public/$1 [L] 
+0

動作しません。私は試してみてください:http://example.com/profilそれは私をhttp://example.com/public/profil/にリダイレクトします。私がhttp://example.com/profil/を試してみると、すべてが大丈夫です。 – Marcin

+0

申し訳ありません。私はこのコメントに誤りがあります。私が試してみると:example.com/profil example.com/public/profil/ – Marcin

+0

にリダイレクト誰かがこの問題の解決策を持っていますか? – Marcin

0

これは私の作品:

RewriteEngine On 
RewriteRule ^/$|^(.*)$ /public/$1 [QSA,NC,L] 
関連する問題