301重定向文件夹根目录

Posted

技术标签:

【中文标题】301重定向文件夹根目录【英文标题】:301 redirect folder root 【发布时间】:2022-01-20 12:41:13 【问题描述】:

我正在为一个相当简单的 301 重定向而苦苦挣扎。

我有几个重定向页面都可以正常工作 - 例如

Redirect 301 /folder/mypage1.html https://www.example.com/folder/mypage2.html.

但是现在我想从文件夹根目录重定向到另一个页面,但我不希望文件夹中的任何其他页面重定向。

所以/myfolder/ 应该重定向到https://www.example.com/mypage.html/myfolder/mypage.html 不应该重定向。

我试过了:

Redirect 301 /myfolder/ https://www.example.com/mypage.html 但这不起作用。

对于这个答案可能很简单的新手问题,我深表歉意。

【问题讨论】:

【参考方案1】:

使用您显示的示例,请尝试遵循 htaccess 规则文件。这使用了 apache 的 THE_REQUESTvariable 来执行重写。

请确保在测试您的 URL 之前清除您的浏览器缓存。

RewriteEngine ON
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteCond %THE_REQUEST \s/myfolder/\s [NC]
RewriteRule ^  mypage.html [L]

【讨论】:

如果您需要在上面显示的规则中将最后一行的更改重定向到RewriteRule ^ mypage.html [R=301,L]【参考方案2】:

使用RedirectMatch,它使用正则表达式进行匹配,而不是简单的前缀匹配(如Redirect)仅重定向文件夹的请求。

例如:

RedirectMatch 301 ^/myfolder/$ https://www.example.com/mypage.html

RedirectRedirectMatch 都属于同一个 Apache 模块:mod_alias

如果您一直在尝试 301(永久)重定向,则需要清除浏览器缓存。首先使用 302(临时)重定向进行测试,以避免潜在的缓存问题。

【讨论】:

以上是关于301重定向文件夹根目录的主要内容,如果未能解决你的问题,请参考以下文章

IIS6 301重定向和IIS7 301重定向

虚拟主机怎么做全站301重定向跳转?

使用 .htaccess 进行大规模 301 重定向

站点核心 301 重定向 iis 7

ngin配置301重定向设置方法和nginx子目录301重定向

htaccess 301 重定向整个目录