.htaccess 将文件夹重定向到 url
Posted
技术标签:
【中文标题】.htaccess 将文件夹重定向到 url【英文标题】:.htaccess redirect folder to a url 【发布时间】:2012-07-27 18:39:56 【问题描述】:我正在尝试将文件夹及其所有子文件重定向到带有 .htaccess 文件的 URL。
但是
Redirect 301 /abc/cba/ http://www.aaa.com/
将使/abc/cba/ddd/index.html
重定向到http://www.aaa.com/ddd/index.html
我想要的是将/abc/cba/ /abc/cba/ddd/index.html
重定向到http://www.aaa.com/
有人可以帮忙吗?谢谢。如果有什么不清楚的地方,请告诉我。
【问题讨论】:
我在 godaddy.com 上有我的共享托管服务器,主域是 abc.com 现在我在其他第三个服务上注册了另一个域 xyz.com,而不是在 godaddy 上。对于这个新网站 xyz.com,我在我的 godaddy 托管服务器的 xyz 目录中安装了 wordpress。现在如何通过保持 abc.com 网站原样将这个 xyz.com 域指向我的托管服务器的 xyz 目录? 【参考方案1】:默认情况下,Redirect
将路径节点映射到一个新的路径节点,因此第一个路径之后的任何内容都会附加到目标 URL。
试试:
RedirectMatch 301 ^/abc/cba/ http://www.aaa.com/?
或者如果您更愿意使用 mod_rewrite 而不是 mod_alias:
RewriteEngine On
RewriteRule ^/?abc/cba/ http://www.aaa.com/? [R=301,L]
【讨论】:
只是一个提示:你应该确定是否要使用301
。因为它真的可以是一个真正的 permanent 重定向(***.com/questions/9130422/…)。如果您不确定并希望避免将来出现麻烦,请使用302
。无论如何在实施和测试阶段都是有利的。
大小写重要吗? /abc/CBA/
会使用提供的解决方案重定向到 http://www.aaa.com/?
,还是您也需要考虑大小写选项?另外,?
为我们做了什么?【参考方案2】:
这是另一个适用于我的 mod_rewrite 规则示例
我想将一个子目录重定向到同一个域的根目录。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^sub_directory/(.*)$ /$1 [R=301,NC,L]
</IfModule>
更多例子可以在这里找到:http://coolestguidesontheplanet.com/redirecting-a-web-folder-directory-to-another-in-htaccess/
【讨论】:
【参考方案3】:我不得不将网址从旧网站版本重新路由到新版本,所以这是我将任何链接从 about-us/* 重新路由到 about-us.html
RewriteEngine on
RewriteRule ^about-us/(.*)$ about-us.html [R=301,L]
它没有做的是重写类似 domain.com/about-us/thing.html => domain.com/about-us.html 之类的东西。
它确实适用于没有扩展名的东西 domain.com/about-us/something-in-url => domain.com/about-us.html
我添加了以下行来重定向 .jpg 和 .png,但它不适用于 .html,我不知道为什么。
RewriteRule ^about-us/(.*).jpg about-us.html [R=301,L]
RewriteRule ^about-us/(.*).png about-us.html [R=301,L]
【讨论】:
【参考方案4】:我更喜欢以下方法:
RewriteEngine on
RewriteCond %REQUEST_URI ^/somedir [NC]
RewriteRule /(.*) http://somesite.com/lost/$1 [R=301,L]
【讨论】:
工作就像一个魅力!非常感谢。以上是关于.htaccess 将文件夹重定向到 url的主要内容,如果未能解决你的问题,请参考以下文章
.htaccess 中的 301 重定向将旧文件路径/名称附加到新 url
markdown [www和https重定向]将所有文件重定向到https url和www域名#www #htaccess