1

シンプルな/folder/リンクでWeb サイトの単一ページにアクセスできるようにするために .htaccess-file を実装した後、特定の (すべてではないにしても) ページが 2 回読み込まれます。

これは、自分のサイトの特定のコンテンツのクリック数をカウントするカウンターが、そのページにアクセスするたびに 2 回インクリメントされるときに気付きました。

これは、.htaccess ファイルを作成した後にのみ発生しました。

これは一般的な問題ですか、それとも私だけですか? これを防ぐために何をする必要がありますか?

いくつかの書き換え条件を除けば、私の .htaccess-file には何もありません...

AddDefaultCharset UTF-8

RewriteEngine on

#remove PHPSESSID 
RewriteCond %{QUERY_STRING} PHPSESSID=.*$ 
RewriteRule .* %{REQUEST_URI}? [R=301,L]

#content
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule /?(content)/([0-9]+)/(.+)$ index.php?nav=single&ID=$2 [QSA,L]

#comments
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule /?(comments)/([0-9]+)/([0-9]+)$ index.php?nav=comments&ID=$2&catID=$3 [QSA,L]

#normal pages
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule /?([A-Za-z0-9_-]+)$ index.php?nav=$1 [QSA,L]


# compress text, html, javascript, css, xml:
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
4

1 に答える 1

2

カウンターはリダイレクトの前にインクリメントされますが、さまざまな理由が考えられます。1 つの理由は、外部リソースに絶対パスを使用することです。それらも書き換えられ、問題を引き起こす可能性があります。

ここにアイデアがあります:

テンプレートの < head> タグの間にこれを追加します。

<base href="/">

それでもうまくいかない場合は、出力バッファーがクリアされる前に、カウンター関数を最後の数行に移動してみてください。

于 2012-12-19T18:25:12.690 に答える