.htaccess - 301 从主域(www 和非 www)重定向到子域

标签 .htaccess mod-rewrite redirect http-status-code-301

我需要从像 mydomain.com 或 www.mydomain.com 这样的主域重定向到 sub.mydomain.com - 这需要适用于所有请求,所以 mydomain.com/whatever 转到 sub.mydomain.com/whatever。

我试过这个,它只适用于主域的非 www:

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

最佳答案

您也可以将它们压缩为一个规则:

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

马克关于 / 的观点是一个重要的考虑因素。由于您在 .htaccess 中定义规则但是,输入(以及通过关联捕获的反向引用)不会以前导斜杠开头,因此在这种情况下您实际上确实需要一个明确的斜杠(就像您曾经的那样)。

因为无论如何我们只想要整个路径,所以使用 %{REQUEST_URI}在这个意义上更可靠,因为它总是有一个前导斜杠,无论我们在什么上下文中使用规则。

关于.htaccess - 301 从主域(www 和非 www)重定向到子域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3534258/

相关文章:

regex - 更新后 Wordpress 自定义 URL 重写中断

php - 从 wp-config.php 中的数据库获取自定义表

apache - 漂亮的 URL 重写有时使用 "?"有时不使用

apache - 使用 .htaccess 将所有 .php 请求重定向到 .html

用于动态 URL 的 Apache Mod_Rewrite Htaccess

.htaccess - .htaccess 中的 AddDefaultCharset UTF-8 安全吗?

php - .htaccess 重定向主域和附加域问题

WordPress:自定义重写规则 - .htaccess 或 functions.php?

redirect - 自动在没有默认 html 页面的文件夹中显示空白页面

angular - 在 IIS 上托管 Angular 应用程序 - 重定向到 root 并强制使用 HTTPS