.htaccess配置,用于在Openshift上的Symfony2应用程序中从www到非www
我在openshift上部署了一个Symfony应用程序(它可以是任何PAAS服务器) 我的域使用CNAME展平指向,如下所示:.htaccess配置,用于在Openshift上的Symfony2应用程序中从www到非www,.htaccess,symfony,mod-rewrite,openshift,paas,.htaccess,Symfony,Mod Rewrite,Openshift,Paas,我在openshift上部署了一个Symfony应用程序(它可以是任何PAAS服务器) 我的域使用CNAME展平指向,如下所示: example.com -> example-user.rhcloud.com www -> example.com Openshift中的我的应用程序具有以下别名: example-user.rhcloud.com example.com www.example.com My.htacces是Symfony2的原件,位于/web DirectoryI
example.com -> example-user.rhcloud.com
www -> example.com
Openshift中的我的应用程序具有以下别名:
example-user.rhcloud.com
example.com
www.example.com
My.htacces是Symfony2的原件,位于/web
DirectoryIndex app.php
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^app\.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .? - [L]
RewriteRule .? %{ENV:BASE}/app.php [L]
</IfModule>
<IfModule !mod_rewrite.c>
<IfModule mod_alias.c>
RedirectMatch 302 ^/$ /app.php/
</IfModule>
</IfModule>
但当我尝试打开www.example.com时,我的浏览器显示有一个重定向循环。(example.com一直运作良好)
如何更改.htaccess文件以将所有www访问指向非www域?好的,我找到了一个非常有效的解决方案 因此,我不必更改.htaccess文件中的任何内容,也不必直接从DNS管理器(我的是cloudfare)中重定向,因为它使用CNAME扁平化
- example.com
- www.example.com
- CNAME-example.com是example-user.rhcloud.com-TTL Automatic的别名
- CNAME-www-是example.com的别名
页面规则
- URL模式:www.example.com
- 转发
- 目标URL:
- 转发类型:302
就是这样,现在主要的www路由指向一个没有www的路由并不完全相关,但是如果你的站点依赖于搜索引擎的流量,当重定向是永久性的时,使用301重定向是一个很好的SEO实践。在这里阅读更多信息我的网站也有同样的问题。您发布的配置以前可以使用,但现在不再使用了。似乎有一些OpenShift“过滤器”在Apache响应上工作,并更改响应的“位置”头,以指向发起请求的目标域。。。openshift的任何人有任何意见吗?@triforce尝试从域管理重定向而不是.htaccess,这是我使其工作的唯一方法。
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule (.*) http://example.com/$1 [R=301,L]