0

ExpressionEngine 1.6 サイトで奇妙な問題が発生しています。ページを追加しましたが、www. URLの前に. wwwがなければ問題ないようです。また、使用しているブラウザにも依存するようです。Chrome を使用している場合、URL に www が含まれるページは表示されませんが、www がない場合は表示されます。他のブラウザは何でも動作します。Chrome のキャッシュをクリアしようとしましたが、役に立ちませんでした。

いったい何が問題なのだろうか?

それと関係がある場合に備えて、.htaccess のコードを次に示します。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
RewriteRule ^(.*)$ /index.php/$1 [QSA,L]

RewriteCond %{QUERY_STRING} ^utm_medium
RewriteCond %{REQUEST_URI} ^/$ [NC]
RewriteRule (.*) /index.php?/pages/index/&%{QUERY_STRING} [L]
</IfModule>
4

1 に答える 1

1

www ありとなしの両方でアクセスできるサイトを持つことは理想的ではありません。これは、重複したコンテンツのために Google のリストが希薄になることを意味するからです。www を削除することで、問題も解決します。

# Remove the www from the URL
# ------------------------------
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

「RewriteBase /」の行の後、メインの書き換えの前に配置する必要があります。

別の方法は、www: を追加することです。

# Add the www to the URL (use instead of www removal)
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} !^localhost [NC]
RewriteRule (.*) http://www.%{HTTP_HOST}/$1 [R=301,L]

そうは言っても、問題を具体的に解決しようとするために、他のページは問題なく、特にこのページだけだと思いますか? また、パスに index.php/ を含めることでページにアクセスできますか?

この書き換えは少し奇妙に思えます: RewriteCond %{QUERY_STRING} ^utm_medium RewriteCond %{REQUEST_URI} ^/$ [NC] RewriteRule (.*) /index.php?/pages/index/&%{QUERY_STRING} [L]

この行が原因で、問題を引き起こしているページに関連している場合は、最後の行を変更してみてください: RewriteRule ^(.*)$ /index.php?/pages/index/&%{QUERY_STRING} [L] または RewriteRule (.* ?)index.php?/pages/index/&%{QUERY_STRING} [L]

于 2012-06-11T13:45:51.647 に答える