【问题标题】:Redirect only blog posts, not directory in .htacess仅重定向博客文章,而不是 .htaccess 中的目录
【发布时间】:2014-04-18 22:08:54
【问题描述】:

我在 www.example.com/blog 有一个带有博客的网页,但永久链接结构是 www.example.com/blog-post-url。我有多年前从网络上链接的博客文章,具有不同的永久链接结构,即 www.example.com/blog/blog-post-url。

所以我需要做的是将所有旧博客链接从 /blog/blog-post-url 重定向到只是 /blog-post-url 但实际上没有将 /blog 目录(博客主页 url)重定向到根目录/.

【问题讨论】:

  • 您的意思是,您想将帖子重定向到另一个网址或页面?为什么不试试插件呢? wordpress.org/plugins/quick-pagepost-redirect-plugin
  • 我已经更新了答案
  • 嗯,从技术上讲,这些帖子甚至不存在于 /blog/blog-post/,但它们在几年前就存在,并且反向链接仍然存在。所以我想重定向:example.com/blog/happy-days ---> example.com/happy-days 但同时保持主页URL:example.com/blog/ ---> example.com/blog

标签: wordpress .htaccess redirect


【解决方案1】:

尝试添加到您的 htaccess 文件的顶部:

RewriteEngine On
RewriteRule ^blog/(.+)$ /$1 [L,R=301]

【讨论】:

  • 我觉得我放错地方了,现在好像可以了!谢谢!
【解决方案2】:

或者您可以尝试使用 .htaccess 但检查 uri 是否为 /blog/blog*,如果是,则只需将其重定向到 /blog* 所以它应该是 RewriteRule ^/blogs/(.*)$ /$1 或类似的东西。

【讨论】:

  • 我尝试添加 'RewriteRule ^/blog/(.*)$ /$1',但似乎没有用。
  • 非常接近,我找到了解决方案 - 非常感谢您的帮助!
【解决方案3】:

试试这个方法。

<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^blog/(.*)$ /$1 [L,R=301]
</IfModule>

这会将所有不存在的文件夹(也称为博客文章)重定向到新位置(来自 /blog/blog-posts --> /blog-posts),而不会重定向 /blog 文件夹中的现有文件和目录。

转到 /blog/existing_directories 不会重定向到 /existing_directories

将 .htaccess 文件放在根目录下,这样只会将博客文章重定向到新链接。

希望对您有所帮助。

【讨论】:

  • IT 最终正常工作,但它仍将 /blog/ 重定向到主根目录 /。感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-26
  • 1970-01-01
  • 2016-06-09
  • 2013-09-12
  • 1970-01-01
相关资源
最近更新 更多