帮助 301 重定向(简单概念,每个目录控制)

发布于 2024-08-14 05:59:52 字数 620 浏览 6 评论 0原文

我正在尝试为客户端站点获取一组 301 重定向,但我遇到了一些困难。

我有大约 17 个不同的目录,其中有 .html 内容文件,我正在将它们转移到 Wordpress。我想做的是创建一个简单的、带有重定向的单个 .htaccess 文件,该文件将允许我将目录中的所有 .html 文件重定向到不带扩展名的 WordPress URL:

手动重定向示例:

重定向 301 /blog/2009/ 04/post1.html /blog/2009/04/post1/
重定向 301 /blog/2009/04/post2.html /blog/2009/04/post2/

尝试创建如下规则:

RewriteRule ^/blog/2009/04/(.*?).html$ /blog/2009/ 04/$1/ [R=301,NC,L]

其中 $1 是文件名(减去 .html),后缀为 /

我无法确定是否为 ^/blog/2009/04/(.*?)。 html$ 意味着它只会重定向到这个特定的目录,并且会重定向到正确的位置。

我显然想为我所有指定的内容目录复制此 ReWriteRule...

任何人都可以指出我正确的方向吗?

谢谢,

I'm trying to get a set of 301 redirects working for a client site, and I'm getting a bit stuck.

I have about 17 different directories that have .html content fileswhich I am moving across to Wordpress. What I am trying to do is create a simple, single .htaccess file with redirects in that will allow me to redirect all the .html files within a directory to wordpress URLs without an extension:

Manual redirect example:

redirect 301 /blog/2009/04/post1.html /blog/2009/04/post1/
redirect 301 /blog/2009/04/post2.html /blog/2009/04/post2/

Trying to create a rule like:

RewriteRule ^/blog/2009/04/(.*?).html$ /blog/2009/04/$1/ [R=301,NC,L]

Where the $1 is the filename (minus the .html) suffixed with a /

I can't determine whether the ^/blog/2009/04/(.*?).html$ means it will only redirect for this particular directory, and will redirect to the right location.

I would obviously want to duplicate this ReWriteRule for all my designated content directories...

Can anyone point me in the right direction?

Thanks,

Lee

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

空城旧梦 2024-08-21 05:59:52

是的,您的规则只会重定向到 2009/04 目录。我想你想要:

RewriteRule ^/blog/([0-9]+)/([0-9]+)/(.*?).html$ /blog/$1/$2/$3/ [R=301,NC,L]

这现在也会将 /blog/2008/12/post.html 重定向到 /blog/2008/12/post/ 等等。尽管由于格式几乎完全相同,也许这会更容易?

RewriteRule ^/blog/(.*?).html$ /blog/$1/ [R=301,NC,L]

Yes, your rule will only redirect for the 2009/04 directory. I think you want:

RewriteRule ^/blog/([0-9]+)/([0-9]+)/(.*?).html$ /blog/$1/$2/$3/ [R=301,NC,L]

This will now also redirect /blog/2008/12/post.html to /blog/2008/12/post/ and so on. Although since you have almost exactly the same format, maybe this will be easier?

RewriteRule ^/blog/(.*?).html$ /blog/$1/ [R=301,NC,L]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文