regex - 仅将子域重定向到根

标签 regex apache .htaccess mod-rewrite

所以我有这个网站:www.example.com,过去会将客户端重定向到 www.example.com/subdir

现在我更新了整个网站,子目录不再存在,我希望主域成为根目录。问题是许多客户端都缓存了包含子域的网址,因此我需要一个重定向规则将 www.example.com/subdir 路由到 www.example.com。

我尝试过这个:

RewriteRule ^subdir/(.*)$ $1

如果我输入 www.example.com/subdir/最后一个斜杠

但是如果我访问 www.example.com/subdir 没有最后一个斜杠,它将无法完成这项工作。

我怎样才能让它发挥作用?

最佳答案

将规则更改为:

RewriteRule ^subdir(?:/(.*))?$ /$1 [L,NC,R=301,NE]

此处使用 R=301 非常重要,这样所有客户端和搜索引擎最终都会转移到新的 URL,而不是继续对相同内容使用重复的 URL(糟糕的 SEO)。

关于regex - 仅将子域重定向到根,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44659480/

相关文章:

regex - 如何使用正则表达式捕获和替换包含单独模式的行上的所有模式

ios - 音频编解码器加密

apache - Visual Studio 中的 Apache Cordova 更新工具

Mysql 和 apache 未启动

.htaccess - 在 .htaccess 中,重定向除一个之外的所有域

带有正则表达式的 JavaScript 字符串变量

javascript - 替换javascript问题中字符串中的所有匹配项

php - 使用 .htaccess 重定向/投票到/vote.php?vote=1

.htaccess - 如何将/#/页面标题发送到/页面标题?

c# - 正则表达式在某些条件下允许值 1 到 100