1

わからない…

私は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']大丈夫です(戻りますrequest?view=1

$_SERVER['QUERY_STRING']また空です

また、Drupal CMSをインストールして、Webサーバーに問題があるかどうかをテストしますが、Drupalは正常に機能します...次に、mod_rewrite設定を修正するためにdrupal".htaccess"ファイルをCMSにコピーしました。(Drupalは私のようなApacheエラーを作成しません)運が悪い、私は再び同じ問題を抱えています。

DrupalCMSからの.htaccessのすべてのオプションでも試してみました

オンにしようとしましたがRewriteLog(数回試行)、結果が得られず、単一のログファイルが作成されませんでした。

私は何かが足りないのですか、それとも...私のcmsがダメで、もう1つ、私のCMSは、まったく同じファイルを持つ他のWebサーバーで問題なく動作します.... ?????

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 / 

PS私の悪い英語でごめんなさい

4

2 に答える 2

1

それがあなたの.htaccess全体であるかどうかはわかりませんが、書き換えを有効にする必要があります。これが私が使用する書き換えであり、失敗することはありません。

RewriteEngine On
Options -Indexes

RewriteBase /

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

RewriteRuleすべてをindex.phpのrouteパラメーターに渡し、(.*)ルータークラスがコントローラーectを処理します。QSAフラグを使用すると、スクリプトの任意の部分に追加のGET/POST値を渡すこともできます。

それが役に立てば幸い

psRewriteCond %{REQUEST_FILENAME} !-dフォルダービューを許可せず、フォルダーからコンテンツを提供しないため、追加しません。すべてがコントローラーインク(images、css、js)を経由するため、ほとんどの場合、これは必要ありません。また、コアやテンプレートなどのフォルダも保護します;)

于 2012-04-05T16:26:07.420 に答える
0

ついに私は自分の問題の解決策を見つけました!答えはとても、とても、とてもシンプルです...

apache2構成(Ubuntu)では、 <Directoryタグがデフォルトで複製されていることがわかりました...すべてのディレクトリタグを消去して、1つの基本タグを作成するだけです。

apache2構成をリロードすると、すべてが正常に機能し始めます

于 2012-04-06T10:05:30.443 に答える