【问题标题】:openshift content encoding error .htaccessopenshift 内容编码错误 .htaccess
【发布时间】:2014-11-26 15:00:48
【问题描述】:

我刚刚使用 ekino-wordpress-bundle 在我的 wordpress 4.0 上安装了 symfony2。我完全按照这里的说明进行操作:https://github.com/ekino/EkinoWordpressBundle

在我的本地主机上一切正常,一个香草 MAMP,但是,当我推送到 openshift(也是一个香草 php 设备)时,一切都崩溃了,我收到内容编码错误。

我已尝试一一调整更改并设法将问题缩小到 .htaccess 文件。

这是来自 wordpress 的 .htaccess 文件:

# BEGIN WordPress
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /webfront-interiorpediadev/
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /webfront-interiorpediadev/index.php [L]
</IfModule>
# END WordPress

这是破坏 wordpress 的 symfony 的 .htaccess,但如果我改回 htaccess,我会像以前一样恢复“只有 wordpress,没有 symfony”的东西:

DirectoryIndex index.php

<IfModule mod_autoindex.c>
    IndexIgnore /symfony
</IfModule>

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
RewriteRule ^(.*) - [E=BASE:%1]

RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^index\.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .? - [L]

# Rewrite all other queries to the front controller.
RewriteRule .? %{ENV:BASE}/index.php [L]
</IfModule>

<IfModule !mod_rewrite.c>
    <IfModule mod_alias.c>
        RedirectMatch 302 ^/$ /index.php/
    </IfModule>
</IfModule>

我不知道出了什么问题,就像在我本地的 MAMP 中一样,一切都与有故障的 .htaccess (wordpress+symfony) 完美配合。有人能帮我指出正确的方向吗?

P.S:我已经检查了我的 MAMP 和 openshift 上的 LoadModule,并且 mod_rewrite 已打开。我不知道其余的,但我认为区别只是 mod_rewrite 和 autoindex

编辑:有问题的网址是:http://webfront-interiorpediadev.rhcloud.com/ 请注意,所有其他子网址都可以正常工作,例如:http://webfront-interiorpediadev.rhcloud.com/wp-loginhttp://webfront-interiorpediadev.rhcloud.com/symfony/web

【问题讨论】:

  • 看起来您的本地安装设置了所有正确的ENV:*
  • 但下面的所有内容都不会出现编码错误,请参阅编辑
  • 我怀疑最后的重写规则RewriteRule .? %{ENV:BASE}/index.php [L]。虽然我从未尝试过您正在运行的环境,但我建议您使用此字符串:1. 将其移至前三行或 2. 将其删除(我敢打赌这会解决问题。)希望它有所帮助。

标签: php apache .htaccess symfony openshift


【解决方案1】:

由于您似乎是在 Windows 上进行编码,然后上传到 linux Web 服务器,因此您应该通过 ssh 连接到您的设备并使用 vim 查看这些文件,看看它们长什么样。很有可能您遇到了一些行尾问题,或者某些字符被复制为 html 实体,在您的 IDE 中正确显示,但服务器未正确解析。

【讨论】:

  • 我在 OSX 上进行了编码并使用 MAMP(Mac、Apache、MySql、Php)进行了测试,但我会再次尝试检查
猜你喜欢
  • 2012-06-13
  • 1970-01-01
  • 1970-01-01
  • 2012-12-20
  • 2016-12-28
  • 2017-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多