2015-06-10 148 views
10

我正在運行一個網站Magento版本1.9.1.0這是SSL啓用。當我在刷新瀏覽器緩存或私人模式後在瀏覽器上打開該網站的管理面板時,首次顯示網站的主頁而不是管理員登錄頁面,即sitename.com/admin網址首次自動重定向至https://sitename.com網址。Magento - URL重寫或重定向問題

當我第一次嘗試直接訪問站點的內部頁面時,發生了同樣的問題。

在此之後,我再次在瀏覽器的地址欄中輸入URL作爲sitename.com/admin,然後它打開管理登錄頁面,這在下次是好的(似乎緩存工程)。

我在我的Magento網站中使用了Login and Pay with Amazon擴展名。所以當我去註冊亞馬遜然後注入憑據後,它顯示我錯誤如下:

沒有收到數據。無法加載網頁,因爲服務器未在Chrome上發送任何數據。 System > configuration > General > web下的Firefox

我使用的基本URL在管理面板(非安全和安全爲https://sitename.com

安全連接失敗,這似乎是正確的?我懷疑在我的.htaccess文件這部分代碼。我用下面的代碼在我.htaccess文件:

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

RewriteEngine On 
RewriteCond %{HTTPS} off 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 


RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.sitename.com/$1 [R,L] 
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 

############################################ 
## TRACE and TRACK HTTP methods disabled to prevent XSS attacks 

RewriteCond %{REQUEST_METHOD} ^TRAC[EK] 
RewriteRule .* - [L,R=405] 

############################################ 
## redirect for mobile user agents 

#RewriteCond %{REQUEST_URI} !^/mobiledirectoryhere/.*$ 
#RewriteCond %{HTTP_USER_AGENT} "android|blackberry|ipad|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC] 
#RewriteRule ^(.*)$ /mobiledirectoryhere/ [L,R=302] 

我的要求是:

  • 網站總是https其工作正常開放。

  • 當用戶使用www訪問網站或不使用www時,網站總是以https://sitename.com打開。並且在正常工作的URL中避免使用index.php

  • 當我在任何時間訪問管理面板時,無論首先還是第一次,都應顯示管理員登錄屏幕。

  • 刪除使用Amazon登錄後發生的錯誤。

請幫我解決這個問題。如果需要其他代碼,請告訴我。

+1

這是一個magento的已知問題,至少達到1.8我知道。我有一個網站,做了很多的公關和記者只會添加或刪除一個www而不測試他們的鏈接,這意味着他們的深層鏈接都將最終重定向到主頁。幾年前,我研究了htaccess修復程序,並提出了空白,雖然我知道這是對這些網站造成的傷害,但大多數magento開發人員都知道這一點,並且認爲這不是什麼大問題。我希望有人提出了一個答案,這是困擾我太久 – RightClick

+1

我會很好,如果它重定向'www.example.com/page1' - >'example.com/page1'這將是好的使用規範的URL並會幫助分享/ + 1計數......但不幸的是它確實存在'www.example.com/page1' - >'example.com',這並不好。真的希望有人發現一個修復程序 – RightClick

+1

第一次總是重定向到主頁。無法直接訪問內部頁面。我知道問題應該在htaccess中。 – Deep

回答

2

我想如果你把.htaccess放在下面的重寫中,它會繞過這個Magento的愚蠢;在Magento得到機會之前,apache會正確地重寫它:

RewriteCond %{HTTP_HOST} ^www\.domain\.com$ 
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L] 
+0

謝謝你的答案 – Deep