2012-02-06 23 views
1

我有一個產品頁面加載罰款,當我輸入www與www(www.domain.com/product),但是當我沒有,它重定向到主頁(domain.com/product - > www.domain.com)。我正在使用Magento。強制www重定向到主頁,htaccess錯誤

我一直在尋找,並試圖htaccess的方法,所有的其他線程提到,但無濟於事:

############################################ 
## 301 the url for SEO 
RewriteEngine On 
RewriteCond %{HTTP_HOST} !^www\.example\.com$ 
RewriteRule ^(.*)$ http://www.example.com/$1 [R=permanent,L] 

Redirect 301 /home http://www.example.com/ 
############################################ 

當我添加這個,我要麼看不到任何變化或整個網站有下降500錯誤:重寫太多。

我的主域可以使用或不使用www。這是我的htaccess的樣子:

############################################ 
## uncomment these lines for CGI mode 
## make sure to specify the correct cgi php binary file name 
## it might be /cgi-bin/php-cgi 

# Action php5-cgi /cgi-bin/php5-cgi 
# AddHandler php5-cgi .php 

############################################ 
## GoDaddy specific options 

# Options -MultiViews 

## you might also need to add this line to php.ini 
##  cgi.fix_pathinfo = 1 
## if it still doesn't work, rename php.ini to php5.ini 

############################################ 
## this line is specific for 1and1 hosting 

#AddType x-mapp-php5 .php 
#AddHandler x-mapp-php5 .php 

############################################ 
## default index file 

DirectoryIndex index.php 

<IfModule mod_php5.c> 

############################################ 
## adjust memory limit 

# php_value memory_limit 64M 
php_value memory_limit 256M 
php_value max_execution_time 18000 

############################################ 
## disable magic quotes for php request vars 

php_flag magic_quotes_gpc off 

############################################ 
## disable automatic session start 
## before autoload was initialized 

php_flag session.auto_start off 

############################################ 
## enable resulting html compression 

php_flag zlib.output_compression on 

########################################### 
# disable user agent verification to not break multiple image upload 

php_flag suhosin.session.cryptua off 

########################################### 
# turn off compatibility with PHP4 when dealing with objects 

php_flag zend.ze1_compatibility_mode Off 

</IfModule> 

<IfModule mod_security.c> 
########################################### 
# disable POST processing to not break multiple image upload 

SecFilterEngine Off 
SecFilterScanPOST Off 
</IfModule> 

<IfModule mod_deflate.c> 

############################################ 
## enable apache served files compression 
## http://developer.yahoo.com/performance/rules.html#gzip 

# Insert filter on all content 
###SetOutputFilter DEFLATE 
# Insert filter on selected content types only 
#AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript 

# Netscape 4.x has some problems... 
#BrowserMatch ^Mozilla/4 gzip-only-text/html 

# Netscape 4.06-4.08 have some more problems 
#BrowserMatch ^Mozilla/4\.0[678] no-gzip 

# MSIE masquerades as Netscape, but it is fine 
#BrowserMatch \bMSIE !no-gzip !gzip-only-text/html 

# Don't compress images 
#SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary 

# Make sure proxies don't deliver the wrong content 
#Header append Vary User-Agent env=!dont-vary 

</IfModule> 

<IfModule mod_ssl.c> 

############################################ 
## make HTTPS env vars available for CGI mode 

SSLOptions StdEnvVars 

</IfModule> 

<IfModule mod_rewrite.c> 

############################################ 
## enable rewrites 

Options +FollowSymLinks 
RewriteEngine on 

############################################ 
## you can put here your magento root folder 
## path relative to web root 

#RewriteBase /magento/ 

############################################ 
## workaround for HTTP authorization 
## in CGI environment 

RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 

############################################ 
## always send 404 on missing files in these folders 

RewriteCond %{REQUEST_URI} !^/(media|skin|js)/ 

############################################ 
## never rewrite for existing files, directories and links 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-l 

############################################ 
## rewrite everything else to index.php 

RewriteRule .* index.php [L] 

</IfModule> 


############################################ 
## Prevent character encoding issues from server overrides 
## If you still have problems, use the second line instead 

AddDefaultCharset Off 
#AddDefaultCharset UTF-8 

<IfModule mod_expires.c> 

############################################ 
## Add default Expires header 
## http://developer.yahoo.com/performance/rules.html#expires 

ExpiresDefault "access plus 1 year" 

</IfModule> 

############################################ 
## By default allow all access 

Order allow,deny 
Allow from all 

########################################### 
## Deny access to release notes to prevent disclosure of the installed Magento version 

<Files RELEASE_NOTES.txt> 
order allow,deny 
deny from all 
</Files> 

############################################ 
## If running in cluster environment, uncomment this 
## http://developer.yahoo.com/performance/rules.html#etags 

#FileETag none 

人有什麼想法?

+0

該網站沒有更改,或者它是否提供500錯誤?如果你訪問同一頁面,它應該只做一個或另一個。如果它給太多的重定向500,谷歌「服務器頭檢查器」,看看網站試圖重定向到什麼頁面。之後通常很容易找到。 – iJeep 2012-02-06 17:36:01

+0

我試過一些產生任一結果的htaccess變體。我會研究一下,謝謝 – miles 2012-02-06 17:43:21

+0

如果你輸入'http://domain.com/product?test',會發生什麼? – Gerben 2012-02-06 17:57:30

回答

3

避免同時使用RewriteRuleRedirect。它們是不同的模塊,可以相互作用,導致不尋常的副作用。

RewriteEngine On 
RewriteCond %{HTTP_HOST} !^www\.example\.com$ 
RewriteRule ^(.*)$ http://www.example.com/$1 [R=permanent,L] 

RewriteRule ^home$/[L,R=301] 

也嘗試清除瀏覽器緩存,因爲301的緩存非常積極。

編輯

您的評論後,讀你原來的問題更徹底,我認爲你放在WWW-規則在錯誤的位置。嘗試將這些規則放在當前htaccess文件的頂部。

+0

嘗試了你的方法,當我重新加載網站時,仍然出現錯誤'太多重寫' – miles 2012-02-06 20:39:41

+0

明白了!哇噢! – miles 2012-02-06 21:14:20

+0

更新了我的文章 – Gerben 2012-02-06 21:18:27