当前位置: 首页 > 知识库问答 >
问题:

将非www重定向到中的www。htaccess

申昌勋
2023-03-14

我有这个在我的. htaccess文件:

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

但是每当我访问根目录上的文件时,就像http://example.com/robots.txt它将重定向到http://www.example.comrobots.txt/

我如何纠正它,以便它将正确地重定向到http://www.example.com/robots.txt

共有3个答案

秦雅逸
2023-03-14
RewriteEngine On

RewriteCond %{HTTP_HOST} !^www\.

RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

对于Https

RewriteCond %{HTTPS}s ^on(s)|

RewriteRule ^(.*)$ http%1://www.%{HTTP_HOST}/$1 [R=301,L]
王修为
2023-03-14

以下是支持https和超文本传输协议的正确解决方案:

# Redirect to www
RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

UPD.:对于像这样的域。co.uk,替换

RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$

具有

RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+\.[^.]+$
阎建中
2023-03-14

将您的配置更改为以下内容(添加斜杠):

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

或者下面概述的解决方案(由@absiddiqueLive提出)将适用于任何域:

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

如果您需要支持超文本传输协议和https并保留协议选项,请尝试以下操作:

RewriteRule ^login\$ https://www.%{HTTP_HOST}/login [R=301,L]

在这里,您可以将登录替换为checkout.php或任何您需要支持HTTPS的URL。

我认为这是个坏主意。关于理由,请阅读此答案。

 类似资料:
  • 问题内容: 我想使用PHP将所有www.domain.com请求重定向到domain.com,基本上是: 但是我确实想像SO中那样维护请求的URL,例如: 应该重定向到: 我不想依靠解决方案,并且我不确定要使用哪种变体来实现这一目标。同样,保留HTTPS协议将是一个加号。 我应该怎么做? 问题答案: 将用户重定向到完全相同的页面,www。完整。 因此,要摆脱www。,我们只需替换一行: 那应该起作

  • 问题内容: 是否有可能以某种方式将www重定向到node.js中的非www URL?由于节点Web服务器中没有htaccess,我很好奇该怎么做。 问题答案: 你在用快递吧?如果是这样,则可以使所有GET请求都通过的路由处理程序,检查它们是否为“ www” URL,并在适当时重定向到适当的非www URL。

  • 好吧,我恨死它了。我已经想解决这个问题几个小时了,但我还是不知道是不是错了,或者我错过了什么。 我有这个代码: 它会将http请求重定向到https,但每当我键入domain.com时,它都会重定向到https://domain.com,并抛出一个ssl错误: 这可能不是你要找的网站!您试图访问域。但实际上您到达了一个服务器,该服务器的名称为www.domain.com。这可能是由于服务器配置错误

  • 我正在尝试使用重定向主网站URL。从www到非www的htaccess,但使用下面的代码片段也会影响我的子域博客。我的域名。通用域名格式。如果我进入子域。我的域名。com我被直接重定向到mydomain。通用域名格式 如何从规则中排除子域? Litespeed web服务器

  • 我通过将非www请求重定向到www。htaccess重写规则。 重写Cond%{HTTP_HOST}!^www 重写规则(.*)www.%{HTTP_HOST}/1美元[L, R=301] 但现在我在子域方面遇到了问题。当我访问然后上述规则重定向到(不可访问),网站在触摸设备上中断。 请告诉我如何解决上述问题。

  • 我在PHP上有一个自定义的非CMS站点。 我现在的生活方式。htaccess设置允许我使用不带“.php”部分的URL,并将所有非www请求重定向到www: 现在我们切换到HTTPS。 如何在中从到获得适当的SEO友好重定向。htaccess? 我试着用一根线代替第三根线 但它不起作用... 另外,有没有办法为. php请求设置301重定向以重定向到non-. php变体?虽然它看起来像是指重定向