たとえば、私のウェブサイトは www.example.com です。
私は 1 つのページを持っています: www.example.com/contactus
「www」を削除すると。上記のURLから、意味:example.com/contactus
ホームページにリダイレクトされます。どうして ??
.htaccess の次の画像をチェックアウトします。
それに対する解決策は何ですか??
たとえば、私のウェブサイトは www.example.com です。
私は 1 つのページを持っています: www.example.com/contactus
「www」を削除すると。上記のURLから、意味:example.com/contactus
ホームページにリダイレクトされます。どうして ??
.htaccess の次の画像をチェックアウトします。
それに対する解決策は何ですか??
.htaccess ファイルで次のような内容を確認してください。
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://your.domain.com/ [R=301,L]
2 行目を次のように変更できます。
RewriteRule ^(.*)$ http://your.domain.com/$1 [R=301,L]
代わりに、「www」なしでリクエストしたページにリダイレクトし、「www」を前に戻します。
見つからない場合は、Magento 管理者にリダイレクトが設定されているか、httpd.conf または仮想ホスト ファイルに設定されているその他の構成がある可能性があります。
アップデート
これを .htaccess ファイルに追加して、問題が解決するかどうかを確認してください (最初に開発環境でテストしてください)。
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
問題は、[管理]->[システム]->[構成]->[Web]でBuildingMagento機能「ベースURLへの自動リダイレクト」を使用していることのようです。
ただし、この機能は(をではなくurl path
ベースURLにリダイレクトするだけで)追加されていないように見えるため、誤解を招くようです。http://www.site.com
http://www.site.com/path/to/xyz.html
したがって、簡単な修正は.htaccessrewriteを使用することです。
リダイレクト先のURLであるbaseUrlを見てください
$baseUrl = Mage::getBaseUrl(
Mage_Core_Model_Store::URL_TYPE_WEB,
Mage::app()->getStore()->isCurrentlySecure()
);
....
Mage::app()->getFrontController()->getResponse()
->setRedirect($baseUrl, $redirectCode)
->sendResponse();
/app/code/core/Mage/Core/Controller/Varien/Front.phpを参照してください
/**
* Auto-redirect to base url (without SID) if the requested url doesn't match it.
* By default this feature is enabled in configuration.
*
* @param Zend_Controller_Request_Http $request
*/
protected function _checkBaseUrl($request)
{
if (!Mage::isInstalled() || $request->getPost()) {
return;
}
$redirectCode = (int)Mage::getStoreConfig('web/url/redirect_to_base');
if (!$redirectCode) {
return;
} elseif ($redirectCode != 301) {
$redirectCode = 302;
}
if ($this->_isAdminFrontNameMatched($request)) {
return;
}
$baseUrl = Mage::getBaseUrl(
Mage_Core_Model_Store::URL_TYPE_WEB,
Mage::app()->getStore()->isCurrentlySecure()
);
if (!$baseUrl) {
return;
}
$uri = @parse_url($baseUrl);
$requestUri = $request->getRequestUri() ? $request->getRequestUri() : '/';
if (isset($uri['scheme']) && $uri['scheme'] != $request->getScheme()
|| isset($uri['host']) && $uri['host'] != $request->getHttpHost()
|| isset($uri['path']) && strpos($requestUri, $uri['path']) === false
) {
Mage::app()->getFrontController()->getResponse()
->setRedirect($baseUrl, $redirectCode)
->sendResponse();
exit;
}
}
これは mod_rewrite とは何の関係もないと思いますが、Magento 自体です。管理画面に移動System->Configuration->Web
します。あなたの下でURL Options
は、おそらくAuto-redirect to Base URL
はいに設定されています。ベース URLはではなくと の下Secure
にUnsecure
ある可能性があります。経由でストアにアクセスすると、ベース URL と一致しないため、 にリダイレクトされます。http(s)://www.example.com/
http(s)://example.com/
example.com
www.example.com