gpt4 book ai didi

apache - 试图将 blog.domain.com 重定向到 www.domain.com/blog/

转载 作者:行者123 更新时间:2023-12-03 22:55:20 27 4
gpt4 key购买 nike

我将位于 www.domain.com 的主站点和位于 blog.domain.com 的旧 wordpress 博客合并到一个全新的 Wordpress 安装中。我导出并导入了所有旧博客文章,以便它们现在位于 wwww.domain.com/blog//下

我正在尝试创建一个重写规则,将所有旧博客文章映射到它们的新 URLS。

我尝试了这些 SO 讨论的变体: DNS/.htaccess files to redirect subdomain to specific folder Apache rewrite rule different if capture is empty

但没有任何效果。

如果 URL 中没有其他内容,我的 .htaccess 文件中的以下内容会将 blog.domain.com 重定向到 www.domain.com/blog:

RewriteCond %{HTTP_HOST} ^blog\.domain\.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www\.blog\.domain\.com$ [NC]
RewriteRule ^/?$ http://www.domain.com/blog/$1 [R=301,L]

但如果 URL 中还有其他内容,它根本不会重写 URL,而是转到新 Wordpress 站点的 404 页面。

我尝试将捕获添加到最后的 RewriteRule 行,但是没有发生重写,它只是转到新主页,但地址栏仍然显示为“blog.domain.com”:

RewriteCond %{HTTP_HOST} ^blog\.domain\.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www\.blog\.domain\.com$ [NC]
RewriteRule ^/(.+)$ http://www.domain.com/blog/$1 [R=301,L]

有没有办法做我想做的事?

最佳答案

您想删除前导斜线:

RewriteCond %{HTTP_HOST} ^blog\.domain\.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www\.blog\.domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/blog/$1 [R=301,L]
# no slash---^

并使 + 成为 *。通过 htaccess 文件中的规则发送的 URI 的前导斜杠被删除,因此 ^/(.+)$ 永远不会匹配。

关于apache - 试图将 blog.domain.com 重定向到 www.domain.com/blog/,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19056213/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com