0

たとえば、私のウェブサイトは www.example.com です。

私は 1 つのページを持っています: www.example.com/contactus

「www」を削除すると。上記のURLから、意味:example.com/contactus

ホームページにリダイレクトされます。どうして ??

.htaccess の次の画像をチェックアウトします。

ここに画像の説明を入力

それに対する解決策は何ですか??

4

3 に答える 3

1

.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]
于 2013-03-13T15:16:05.927 に答える
0

問題は、[管理]->[システム]->[構成]->[Web]でBuildingMagento機能「ベースURLへの自動リダイレクト」を使用していることのようです。

ここに画像の説明を入力してください

ただし、この機能は(をではなくurl pathベースURLにリダイレクトするだけで)追加されていないように見えるため、誤解を招くようです。http://www.site.comhttp://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;
    }
}
于 2013-03-13T16:25:46.287 に答える
-1

これは mod_rewrite とは何の関係もないと思いますが、Magento 自体です。管理画面に移動System->Configuration->Webします。あなたの下でURL Optionsは、おそらくAuto-redirect to Base URLはいに設定されています。ベース URLはではなくと の下SecureUnsecureある可能性があります。経由でストアにアクセスすると、ベース URL と一致しないため、 にリダイレクトされます。http(s)://www.example.com/http(s)://example.com/example.comwww.example.com

于 2013-03-13T15:57:00.107 に答える