34

我正在尝试将文件夹及其所有子文件重定向到带有 .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.htmlhttp://www.aaa.com/

有人可以帮忙吗?谢谢。如果有什么不清楚的,请告诉我。

4

4 回答 4

43

默认情况下,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]
于 2012-07-30T05:34:51.673 回答
10

这是另一个对我有用的 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/

于 2014-05-21T15:45:09.507 回答
2

我更喜欢以下方法:

 RewriteEngine on
 RewriteCond %{REQUEST_URI}  ^/somedir           [NC]
 RewriteRule /(.*) http://somesite.com/lost/$1 [R=301,L]
于 2020-02-18T00:03:32.910 回答
1

我不得不将网址从旧网站版本重新路由到新版本,所以这是我将任何链接从 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]
于 2018-04-10T15:41:02.960 回答