带空格的跨域 301 重定向 URL

Posted

技术标签:

【中文标题】带空格的跨域 301 重定向 URL【英文标题】:Cross Domain 301 Redirect URL With Spaces 【发布时间】:2013-07-02 16:29:58 【问题描述】:

我在重定向以下格式的 URL 时遇到严重问题:

oldsite.com/file name.htm 到 newsite.com/newfilename.htm

启用了 mod_rewrite 等的 Apache 服务器 - 其他 301 工作正常(即 301 重定向不带空格的 url)

我已经尝试了许多解决方案,并且在 *** 上浏览了几乎所有答案。

非常感谢任何帮助 - 在我拔出最后一根头发之前需要解决这个问题!

谢谢大家!

编辑:这是我成功用来重定向所有没有空格的 URL 的代码。

Options +FollowSymlinks
RewriteEngine on
rewriterule ^somedirectory/solutions.htm(.*)$ http://www.newdomain.com/new-solutions/$1 [r=301,nc]

【问题讨论】:

请提供一些您试图帮助我们改进的代码。 您能描述一下您遇到的问题吗?我们所知道的是,您在重定向 URL 时遇到了“严重问题”。我猜服务器与您的“...文件名.htm”不匹配,您是否尝试过 URL 编码? %20 用于空间。和 mod_rewrite 有什么关系?看来你想重定向,而不是重写,我相信这是 mod_alias。 已尝试:在重定向代码中包含 %20,尝试转义空格等。所有其他重定向工作正常,因此 mod_alias 或 mod_rewrite 没有问题 【参考方案1】:

您是否尝试过在重写或重定向规则中转义空格?下面的例子。

oldsite.com/file\ name.htm

好吧,也许试试这个。请注意,这仅适用于该特定页面。

redirect 301 "/file name.htm" http://newsite.com/newfilename.htm

【讨论】:

干得好 Pjack - 它工作得很好。感谢您的帮助!【参考方案2】:

空格在 URL 中编码为%20

oldsite.com/file%20name.htm

【讨论】:

以上是关于带空格的跨域 301 重定向 URL的主要内容,如果未能解决你的问题,请参考以下文章

移动域 - 带数据的 301 重定向

301 重定向与相对 = 规范

使用获取参数的 Apache 301 重定向

nginx 301跳转,怎么把refere带过去

Safari 中的跨域资源共享策略拒绝了跨域重定向

小程序定制开发WEB服务器-设置网站301全站跳转(域名301重定向)