删除后重定向到主页www。来自URL

时间:2013-03-13 15:09:13

标签: php magento url redirect url-redirection

说,我的网站是:www.example.com

我有一页:www.example.com/contactus

如果我删除“www。”从上面的url,表示:example.com/contactus

它将我重定向到主页。为什么??

结帐以下.htaccess图片:

enter image description here

它的解决方案是什么?

3 个答案:

答案 0 :(得分:1)

检查您的.htaccess文件,查找类似于以下内容的内容:

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

您可以将第二行更改为:

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]

答案 1 :(得分:0)

我怀疑这与mod_rewrite无关,而是Magento本身。导航到管理员中的System->Configuration->Web。在URL Options下,您很可能将Auto-redirect to Base URL设置为是。 SecureUnsecure下的基本网址可能是http(s)://www.example.com/而不是http(s)://example.com/。通过example.com访问商店时,它与基本网址不匹配,因此您被重定向到www.example.com

答案 2 :(得分:0)

问题似乎是您在管理中使用了构建magento功能“自动重定向到基本网址” - &gt;系统 - &gt;配置 - &gt;网络

enter image description here

但是这个功能似乎有误导性,因为它似乎没有附加url path(仅将您重定向到基本网址http://www.site.com而不是http://www.site.com/path/to/xyz.html)。

因此,快速解决方法是使用.htaccess rewrite

看一下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;
    }
}