【发布时间】:2022-01-02 16:25:17
【问题描述】:
我的网站有一种不寻常的设置:
-
site.tld= Gatsby 网站,包含一些静态页面,例如 /example1 和 /example2 等。 -
site.tld/blog= WordPress 网站
现在我想让用户访问一个新页面site.tld/mynewpage,它实际上是 WordPress 网站上的一个页面。所以实际的 URL 是site.tld/blog/mynewpage。
为了实现这一点,我定义了这条规则:
RewriteRule ^mynewpage/$ /blog/mynewpage/ [L]
哪种有效。当我浏览到 site.tld/mynewpage 时,它可以让我成功看到所需的 wordpress 页面。
我的预期是,如果我现在浏览到 site.tld/blog/mynewpage,它要么给我一个 404,要么它会“自动重定向”到 site.tld/mynewpage。但这些都没有发生。地址栏仍然显示site.tld/blog/mynewpage,我正确地看到了该页面。所以现在我有两个指向mynewpage 的链接。对于 SEO 这没什么大不了的,因为我可以将规范 URL 设置为 site.tld/mynewpage,但它困扰我的是,这个“旧 URL”site.tld/blog/mynewpage 仍然存在。
有没有办法解决这个问题?我天真地尝试从 site.tld/blog/mynewpage 重定向到 site.tld/mynewpage 但这给了我一个“重定向太多”,我认为这是因为它是一个无限循环。
任何帮助表示赞赏 =)
【问题讨论】:
-
大概你有 2 个
.htaccess文件?一个在根目录,另一个在/blog子目录?在您的示例中,您的 URL 上没有斜杠(即/mynewpage),但是,在您发布的指令中,您包含了一个斜杠(即/mynewpage/) - 它是什么? -
是的,正如你所说的那样,它是两个,并且已经处理了尾部斜杠,我对此没有任何问题。但是,是的,它实际上是带有斜杠。
标签: wordpress apache .htaccess mod-rewrite url-rewriting