301 重定向不适用于 url 中的 %20

Posted

技术标签:

【中文标题】301 重定向不适用于 url 中的 %20【英文标题】:301 redirect will not work with %20 in url 【发布时间】:2012-12-19 07:22:01 【问题描述】:

我正在尝试创建此重定向:

Redirect /commercial%20work.html http://nataliearriolaphotography.com/fine-art-photography-prints.html

问题是当我第一次创建这个页面时,我在文件名中留下了一个空格。换句话说,它是“/commercial work.html”。在 chrome 和 safari 中,url 读取如上,%20 代替了空格,但是当我创建这个重定向时它不起作用。我还尝试了以下方法:

Redirect /commercial work.html http://nataliearriolaphotography.com/fine-art-photography-prints.html

这也不起作用。它会导致出现服务器错误页面。有没有人有什么建议?谢谢!

【问题讨论】:

【参考方案1】:

尝试添加引号。所以

Redirect "/commercial work.html" http://nataliearriolaphotography.com/fine-art-photography-prints.html

【讨论】:

Gerben,感谢您的回答,但这也不起作用。它会导致出现服务器错误页面。也许它与fatcow有关? Acutally 我错过了报价。让我再试一次!对不起! @evangelion3258 你说的胖子是什么意思? 不客气。作为回报,请将其标记为已回答。谢谢。 嗨,我正在尝试让它工作,但这种情况不适用于引号,给出 500 错误(尝试了多种变体)RedirectMatch 301 ^/2012 files/(.*)$ /archives/old-website/2012 files/$1 @Yatko 是否加载了 mod_alias 模块?也可以试试RedirectMatch 301 ^/2012\ files/(.*)$ /archives/old-website/2012\ files/$1【参考方案2】:

将页面名称放在引号中就可以了,例如:

Redirect 301 "/commercial work.html" http://nataliearriolaphotography.com/fine-art-photography-prints.html

【讨论】:

以上是关于301 重定向不适用于 url 中的 %20的主要内容,如果未能解决你的问题,请参考以下文章

Mass 301 Moved 永久重定向

如何在 ASP.NET 4.0 中进行 301 重定向?

window.location.href 重定向不适用于 url 中的 #

为啥这个 301 重定向会导致重定向到错误的 url?

在 IIS7 URL 重写模块中,我可以在重定向规则中指定不适用于 http-post 请求吗?

使用查询参数和 URL 中的 ~ 进行 301 重定向