2012-04-05 11 views
1

...奇妙な状況のmod_rewriteとPHP

私はCMSは私によって書かれ、「mod_rewriteの」から隠れたエラーに関するいくつかの奇妙な問題を抱えています。 apache2のerror.logに "mod_rewriteを" 与えることに:

File does not exist: /home/path/to/request, referer: http://IP/request?view=1 

$_GET/$_POST要求のすべての空の

$_SERVER['REQUEST_URI']ないok(戻りrequest?view=1

$_SERVER['QUERY_STRING'] iは

もまた空であるありますテストするためにDrupal CMSをインストールするのはWebサーバー上の問題ですが、Drupalはうまくいきます...そして、drupal ".htaccess"ファイルをCMSにコピーしてmod_rewrite preferenを修正しましたces。 (Drupalは私のようにApacheのエラーを作成しません) 運がない、私は再び同じ問題を抱えています。

もDrupalのCMS

からの.htaccessのすべてのオプション私はRewriteLog(いくつかの試み)をオンにしようと試みたが、結果なし、ではない単一のログファイルが作成されませんでした。

は私が.... ともう一つを吸う、私のCMSがまったく同じファイルを他のWebサーバ上うまく仕事不足している何かか...ちょうど私のCMSアム?????

RewriteEngine On 
Options -Indexes 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !=/favicon.ico 

#tested RewriteRule^index.php [L] 
#tested RewriteRule^index.php [L,QSA] 
#tested Options FollowSymLinks 
#tested Options -MultiViews 
#tested RewriteBase/

P.S.

RewriteEngine On 
Options -Indexes 

RewriteBase/

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ index.php?route=$1 [L,QSA] 

RewriteRuleがルートパラメータにすべて(.*)を渡す:私の悪い英語

+1

あなたのhtaccessルールを投稿することができます。主に書き換えルール。 – Gohn67

+2

書き換えにQSAフラグを追加しましたか?そのフラグが必要なGET/POSTパラメータを渡したい場合は、書き換えplz –

+0

'RewriteCond%{REQUEST_FILENAME}を表示してください!-f RewriteCond%{REQUEST_FILENAME}!!-d するRewriteCondの%{REQUEST_URI} =/favicon.icoを #RewriteRule^index.phpを[L]は[QSA、L] のRewriteRule ^のindex.phpを#tested オプションはFollowSymLinksが オプション#tested #tested - MultiViews #tested RewriteBase /#tested' – fire1

答えて

0

私は私の問題の解決策を見つけました! 答えは非常に非常に非常に簡単です...

私は<Directoryタグがデフォルトで複製されていることを発見しました...私はすべてのディレクトリタグを消去して基本的なものを作成します。

reload apache2設定とすべてのことがうまく動作し始めます。

1

ないことはあなたの全体の.htaccessのですが、あなたはリライトを有効にする必要がある場合は、ここで私が使用し、その失敗したことはありません書き換えだと確信して申し訳ありませんindex.phpで私のルータクラスがコントローラのectを処理すると、QSAフラグはスクリプトのどの部分にも余分なGET/POST値を渡すことを許可します。

が、それは私がフォルダビューを許可いけないと私はフォルダからコンテンツを提供いけないので、私はいけない

PSはRewriteCond %{REQUEST_FILENAME} !-dを追加することができます願って、すべてが株式会社(画像、CSS、JS)コントローラを経由しないので、何もありほとんどの場合、これが必要です。そしてそれはまた、コアのようなフォルダを保護します&テンプレートect;)

+0

どのように正確にフォルダビューを許可しないかを知りたい – fire1

+0

これはこの部分です 'Options -Indexes' –

+1

フォルダを保護するには、 .htaccess'を1行で 'deny from all'とすると、phpがブラウザにアクセスできなくなります。 –

関連する問題