OpenShift.htaccess重写规则不';行不通
我有一个多用户wordpress安装,目前正在使用子域。我想将其迁移到使用子文件夹multiuser。我已经设置了多用户子文件夹,它实际上可以工作。现在,我想从旧地址重定向到新地址。例如: peter.example.com->example.com/peter 以上两个域都在OpenShift中正确添加为别名。为了引起重定向,我在.htaccess文件中创建了一个重写规则。看起来是这样的:OpenShift.htaccess重写规则不';行不通,.htaccess,mod-rewrite,openshift,.htaccess,Mod Rewrite,Openshift,我有一个多用户wordpress安装,目前正在使用子域。我想将其迁移到使用子文件夹multiuser。我已经设置了多用户子文件夹,它实际上可以工作。现在,我想从旧地址重定向到新地址。例如: peter.example.com->example.com/peter 以上两个域都在OpenShift中正确添加为别名。为了引起重定向,我在.htaccess文件中创建了一个重写规则。看起来是这样的: RewriteCond %{HTTP_HOST} ^((?!www)[^.]+)\.example\.c
RewriteCond %{HTTP_HOST} ^((?!www)[^.]+)\.example\.com$ [NC]
RewriteRule ^(.*)$ http://example.com/%1/$1 [R=301,L]
这将导致重定向循环。通过检查,peter.example.com上的一个简单请求生成:
HTTP/1.1 301 Moved Permanently
Date: Mon, 05 Jan 2015 03:30:58 GMT
Server: Apache/2.2.15 (Red Hat)
Location: http://peter.example.com/peter/
Content-Length: 335
Content-Type: text/html; charset=iso-8859-1
Accept-Ranges: none
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="http://example.com/peter/">here</a>.</p>
<hr>
<address>Apache/2.2.15 (Red Hat) Server at peter.example.com Port 80</address>
</body></html>
HTTP/1.1 301永久移动
日期:2015年1月5日星期一03:30:58 GMT
服务器:Apache/2.2.15(红帽)
地点:http://peter.example.com/peter/
内容长度:335
内容类型:text/html;字符集=iso-8859-1
接受范围:无
301永久搬迁
永久移除
文档已移动
位于peter.example.com端口80的Apache/2.2.15(Red Hat)服务器
返回值是正确的,就像主体中的URL一样;所以我知道我的重写规则正在评估中。但是,位置标头中的URL不正确。为什么?在我看来,OpenShift似乎正在破坏这个头文件,导致重定向失败
这是OpenShift中的错误吗?按照我的规则?有人提出了解决方法吗?我遇到了同样的问题,并且能够证明OpenShift重写了位置头。以下是我所做的和发现的:
Location: http://www.example.com/
Location: http://test-app.rhcloud.com/
RewriteCond %{HTTP_HOST} ^((?!www)[^.]+)\.example\.com$ [NC]
RewriteRule ^(.*)$ http://example.com:80/%1/$1 [R=301,L]
我遇到了同样的问题,并且能够证明OpenShift重写了位置头。以下是我所做的和发现的:
Location: http://www.example.com/
Location: http://test-app.rhcloud.com/
RewriteCond %{HTTP_HOST} ^((?!www)[^.]+)\.example\.com$ [NC]
RewriteRule ^(.*)$ http://example.com:80/%1/$1 [R=301,L]
端口:80已修复此问题。我不可能正确重定向,OpenShift也帮不上忙。正如其他人所说,任何地方都没有记录。端口:80的添加解决了这个问题。我不可能正确重定向,OpenShift也帮不上忙。正如其他人所说,任何地方都没有记录。请不要在答案中添加“谢谢”。在这个网站上投入一些时间,你会得到足够多的你喜欢的答案,这是Stack Overflow表达感谢的方式。我已经阅读Stack Overflow一段时间了,我或多或少知道它的正常行为。然而,由于我不能投赞成票,我不得不说声谢谢。我希望这不会打扰你。无论如何,谢谢你的提醒,我明白你的意思:-)请不要在答案中加上“谢谢”。在这个网站上投入一些时间,你会得到足够多的你喜欢的答案,这是Stack Overflow表达感谢的方式。我已经阅读Stack Overflow一段时间了,我或多或少知道它的正常行为。然而,由于我不能投赞成票,我不得不说声谢谢。我希望这不会打扰你。无论如何,谢谢你的提醒,我明白你的意思:-)经过一年左右的时间,我终于找到了解决办法。非常感谢你!大约一年后,我终于找到了解决办法。非常感谢你!