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_REQUEST
variable 来执行重写。
请确保在测试您的 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
Redirect
和 RedirectMatch
都属于同一个 Apache 模块:mod_alias
如果您一直在尝试 301(永久)重定向,则需要清除浏览器缓存。首先使用 302(临时)重定向进行测试,以避免潜在的缓存问题。
【讨论】:
以上是关于301重定向文件夹根目录的主要内容,如果未能解决你的问题,请参考以下文章