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

htaccess-重定向非www-但排除特定子域

郏稳
2023-03-14

我有一个多个域共享一个htaccess的系统。目前,我使用以下命令将所有非www请求重定向到www。

RewriteCond%{HTTP\u HOST}^www\。[NC]重写规则^(.*)$http://www.%{HTTP_HOST}/$1[R=301,L]
唯一的问题是现在我根本不能使用子域,因为子域。我的主人。com将被重定向到www.sub-domain。我的主人。com
上述规则是否有一种方法可以排除所有以“sub-”开头的请求?而不是重定向到www。

更新:

Options +FollowSymLinks -MultiViews  
RewriteEngine On  
RewriteBase /  

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

在我的表格中只有以上5行。htaccess将抛出“500-内部服务器错误”。

共有1个答案

董子航
2023-03-14

尝试以下简单调整:

RewriteCond %{HTTP_HOST} ^(?!(?:sub-|www)) [NC] 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

解释

  • ^锚定声明我们位于字符串的开头
  • 负前瞻(?!(?:sub-| www))断言下面的内容不是sub-www
 类似资料:
  • 我有这个在我的. htaccess文件: 但是每当我访问根目录上的文件时,就像它将重定向到。 我如何纠正它,以便它将正确地重定向到?

  • 我有以下htaccess代码: 我希望我的站点被重定向到使用HTTPS,并强制执行子域,但当我访问(没有HTTPS),它不会将我重定向到使用HTTPS。

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

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

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

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