0

を有効mod_rewriteにして、ファイルを使用して.htaccessすべてのリクエストを通過させていますindex.php

URLにアクセスすると

http://localhost/mysite

http://localhost/mysite/abc

ページが1回読み込まれます。

ただし、パスにパーツを追加すると、ページが3回読み込まれ、cssファイルが含まれなくなります。

http://localhost/mysite/abc/xyz

http://localhost/mysite/abc/xyz/ttt

等...

すべてが原因でページが3回読み込まれます。Eclipseにブレークポイントが設定されているので、これを確認できindex.phpます。

これが私の.htaccessファイルです:

<IfModule mod_rewrite.c>
  RewriteEngine on

  # Block access to "hidden" directories whose names begin with a period. 
  # Files whose names begin with a period are protected by the FilesMatch directive
  # above.
  RewriteRule "(^|/)\." - [F]

  # Pass all requests not referring directly to files in the filesystem to
  # index.php. Clean URLs are handled in drupal_environment_initialize().
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^ index.php [L]
</IfModule>

ページが複数回読み込まれ、CSSが欠落している理由はありますか?

4

2 に答える 2

5

スペースが原因で、 RewriteRule^index.phpが問題になると思います。

代わりにこれを試してください:

RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

RewriteRuleパターン置換フラグ
パターン:要求されたファイルindex.php
置換:なし(-置換しないことを意味します)
フラグ:L-最後(これ以上実行しない)

条件1:要求されたファイルが存在しない場合

条件2:要求されたファイルがディレクトリでない場合

次の再書き込みルールを適用します
RewriteRuleパターン置換フラグ
パターン:任意の
置換:/index.php
フラグ:L-最後(これ以上実行しないでください)
IEは/index.phpにジャンプします

要約すると、
要求されたファイルがindex.php OKの場合(そしてそれ以上のルールの処理を停止する)
、そうでない
場合はファイルが存在する場合はそれを実行し
ますファイルがディレクトリの場合はそのディレクトリに移動し、
そうでない場合
はルートWebディレクトリのindex.phpにジャンプします

于 2012-08-09T14:39:46.530 に答える
0

自分の状況を追加情報として追加したいと思います。この答えも私の問題の解決策であることがわかりました。

私が抱えていた問題はまったく同じでした。db挿入を実行したところ、エントリがランダムに挿入された回数に気づきました。

時々15、時々2そして時々25。

私が変更しなければならなかった行は:

RewriteRule    (.*) core/$1    [L]

RewriteRule    (.*)core/$1    [L]

したがって、(。*)コア/$1の間はスペースです。これは削除する必要があります。

于 2015-09-17T07:13:13.777 に答える