2012-04-14 19 views
0

modhostの書き換えはlocalhostで動作しますが、godaddyの共有ホストでは動作しません。godaddy-htaccessの条件が正しく動作しない

Options -Multiviews 
Options +FollowSymLinks 
RewriteEngine On 

RewriteCond %{DOCUMENT_ROOT}/WebShop/View/public%{REQUEST_URI} -f 
RewriteRule ^(.*)$ WebShop/View/public/$1 [L] 

RewriteRule ^(.*)$ entryPoint.php [QSA,L] 

問題はRewriteCond部分にあります。サブフォルダ内のexsitingファイルを見つけることができません。私は絶対パス、相対パス、rewritebaseのすべてを試しましたが、どちらもうまくいきませんでした。 Godaddyは書き換えログへのアクセスを許可しません...どのようにこの問題を解決するためのアイデア?

編集:

はhtaccessファイルはサブフォルダ内にあり、ドキュメントルートにサブフォルダにドメインによって要求を分割htaccessのである:

Options -Multiviews 
Options +FollowSymLinks 

RewriteEngine On 

RewriteBase/

RewriteCond %{HTTP_HOST} ([^\.]+\.[^\.]+)$ 
RewriteRule ^(.*)$ %1/$1 [L,QSA] 

そして、本当の問題があること、ですサブフォルダのhtaccessファイルに%{REQUEST_URI}はあまりにもサブフォルダの名前を含む:S

EDIT2:

[OK]を

私は部分的な解決策を持っている:

Options -Multiviews 
Options +FollowSymLinks 

RewriteEngine On 

RewriteBase/

RewriteCond %{REQUEST_URI} ^/([^/]+)/(.*)$ 
RewriteCond %{DOCUMENT_ROOT}/%1/WebShop/View/public/%2 -f 
RewriteRule ^(.*)$ entryPoint.php?file=%2 [L] 

RewriteRule ^(.*)$ entryPoint.php [QSA,L] 

存在する場合、これは、ファイル名を出力しますが、それは冗談のようなものだ、私は

RewriteRule ^(.*)$ x.php [QSA,L] 

に2つ目のルールを変更する場合は、すべてがに行く起こしますx.php。私はなぜモッズリライトがLフラグを認識しないのだろうかと思っていますか?

(ビールを飲みに行く)

答えて

0

それが原因で奇妙なディレクトリ設定のいくつかの並べ替えのかもしれないですが、あなたはGoDaddyのサーバー上のサブディレクトリにリダイレクトする場合は、あなたがそこに空の.htaccessファイルを作成する必要がありますRewriteEngineをOnにすると、動作しません。

EDIT2セクションで上記のコードはうまく動作しますが、GoDaddyはサーバー上で...ここでのファイルアクセスのバージョンではありません。

Options -Multiviews 
Options +FollowSymLinks 

RewriteEngine On 

RewriteBase/

RewriteCond %{REQUEST_URI} ^/([^/]+)/(.*)$ 
RewriteCond %{DOCUMENT_ROOT}/%1/WebShop/View/public/%2 -f 
RewriteRule ^(.*)$ WebShop/View/public/%2 [L] 

RewriteRule ^(.*)$ entryPoint.php [QSA,L] 

そして、私はRewriteEngineで空の.htaccessファイルを置い"WebShop/View/public"ディレクトリでLフラグの問題を修正しました。

関連する問題