我在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>
答案 0 :(得分:1)
拥有一个可在www和无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 /&amp;%{QUERY_STRING} [L]
如果此行是罪魁祸首且与导致问题的页面相关,请尝试更改最后一行: RewriteRule ^(。*)$ /index.php?/pages/index/&%{QUERY_STRING} [L] 要么 RewriteRule(。*?)index.php?/ pages / index /&amp;%{QUERY_STRING} [L]