.htaccess 使用哈希重定向到子域 url

Posted

技术标签:

【中文标题】.htaccess 使用哈希重定向到子域 url【英文标题】:.htaccess redirect to subdomain url with hash 【发布时间】:2021-04-08 21:14:20 【问题描述】:

我正在尝试使用以下 url 结构重定向网站:

https://example.com/2021/about https://2021.example.com/#about

https://example.com/2021/visit https://2021.example.com/#visit

我该怎么做?

我尝试将其添加到原始域中的 /about 目录:

RewriteEngine on
RewriteBase /
RewriteRule (.*)  https://2021.example.com/#about [R=301,NE, L]

但是重定向后我得到的是 https://2021.example.com/#about2021/about

这是不对的。任何帮助表示赞赏

[编辑] 我只想将此应用于某些文件夹,例如 /2021/about 和 2021/visit

【问题讨论】:

【参考方案1】:

您可以使用此重定向规则:

RewriteEngine On

RewriteCond %HTTP_HOST ^(?:www\.)?(example\.com) [NC]
RewriteRule ^(20\d2)/(.+?)/?$ https://$1.%1/#$2 [R=301,L,NE]

确保这是您在 .htaccess 中的最高规则,并在测试此新规则之前清除浏览器缓存。

【讨论】:

正如我在我编辑的帖子中提到的,这将影响所有文件夹。但我只想重定向一些文件夹,如 /2021/about 和 2021/visit this will affect all folders - 不,它没穿。如果您仔细观察,它与 20\d2 匹配,这意味着它只会重定向以 2020/、2021/、2022/` 等开头的 URI。 如果总是2021,那么规则就是:RewriteRule ^(2021)/(.+)$ https://$1.%1/#$2 [R=301,L,NE] 好的,但目前我在最终网址https://2021.example.com/#about/ 上得到一个斜杠,是否可以删除哈希中的斜杠?还是我必须在子域上处理的事情? 是的,可以解决。立即查看我的更新答案。【参考方案2】:

您能否尝试以下,根据您显示的示例编写。请确保在测试您的 URL 之前清除您的浏览器缓存。以下仅适用于 2021/about2021/visit uris。

RewriteEngine ON
RewriteCond %HTTP_HOST (example\.com) [NC]
RewriteRule ^(2021)/(about|visit)/?$ http://$1.%1/#$2 [R=301,NC,NE,L]

【讨论】:

如果我使用这个,它也会重定向其他文件夹吗?我只想要一些文件夹,例如 /2021/about 和 2021/visit @wsgg,好的,请检查我更新的答案,如果对您有帮助,请告诉我。

以上是关于.htaccess 使用哈希重定向到子域 url的主要内容,如果未能解决你的问题,请参考以下文章

.htaccess 将子域重定向到外部 URL

htaccess中的子域重定向[关闭]

.htaccess 如何仅将子域/文件夹重定向到子域

使用 htaccess 重定向子域而不更改地址栏中的 URL

.htaccess - 将子域重定向到文件夹

.htaccess 重定向到子域