url中有空格时htaccess重定向

Posted

技术标签:

【中文标题】url中有空格时htaccess重定向【英文标题】:htaccess redirect when there is a space in url 【发布时间】:2012-09-22 03:36:33 【问题描述】:

我想从仍然出现在谷歌搜索中的旧网址重定向到新网址。旧网址是这样的:

http://www.marionettecolla.org/file%20_mostra_milano/mostra_marionette-milano.htm

我想把它重定向到主页:

http://www.marionettecolla.org/

我在我的 .htaccess 中使用了这个:

Redirect http://marionettecolla.org/file\ _mostra_milano/mostra_marionette-milano.htm http://marionettecolla.org/

但我收到错误 500...有人知道如何解决这个问题吗?

【问题讨论】:

【参考方案1】:

redirectMatch 301 ^/careers[\s]/(.*)$ http://www.soheil.com/careers/$1

【讨论】:

【参考方案2】:

试试这个,即使我们测试过它也有效:

重定向 301 "/file _mostra_milano/mostra_marionette-milano.htm" http://marionettecolla.orgx/" http://marionettecolla.org

发布者

阿拉帕蒂

【讨论】:

不要使用 301 重定向,它们会缓存在客户端浏览器上,您会失去控制,从而使其永久化。【参考方案3】:

你不能像 "\ " 那样逃避空间。正确的做法是 "\s"

虽然我不确定在 htaccess 文件中用“\s”代替空格是否可以解决问题。请让我知道它是否有效。

【讨论】:

\s 太宽泛了。它匹配任何空格,而不仅仅是空格。【参考方案4】:

这应该可行:

Redirect 301 "http://marionettecolla.org/file _mostra_milano/mostra_marionette-milano.htm" http://marionettecolla.org/

把它放在一对双引号" ... "之间

更新:

这也是另一种方式,适用于任何类型的空间:

redirectMatch 301 http://marionettecolla.org/file[\s]_mostra_milano/mostra_marionette-milano.htm http://marionettecolla.org/

【讨论】:

Mahsa,看看这个,我在 Redirect 旁边添加了 301 ...它现在应该可以使用了 我已经更新了解决方案……你可以在那里看到[\s]。这一个也应该有效... 如果您使用双引号,那么通常需要通过正则表达式转义的所有其他字符都将变为无效。这是一个副作用很大的解决方案,只适用于狭窄的情况,比如这个。 不要使用 301 重定向,它们会缓存在客户端浏览器上,您会失去控制,从而使其永久化。

以上是关于url中有空格时htaccess重定向的主要内容,如果未能解决你的问题,请参考以下文章

301 使用 .htaccess 重定向 URL 模式

使用.htaccess实现apache URL重定向

使用多个参数重定向 URL 以清除 .htaccess 中的 URL

php中htaccess重定向url后无法加载css和js

htaccess 重定向到 HTTPS,除了几个 url

htaccess 重定向 301 + 重写冲突