ExpressionEngine 2所有子页面返回“找不到文件”

时间:2017-04-14 19:56:31

标签: apache url-rewriting expressionengine

我正在使用ExpressionEngine 2网站,我相信,我的重写规则存在问题。我可以毫无问题地访问主站点,但是当我尝试访问任何子页面时,我遇到了纯白色屏幕和简单的短语“找不到文件”。 (页面源也只是这个文本。)

奇怪的是它会在我朋友的电脑上工作,这让我相信这是我服务器配置的问题。我正在运行一个使用Ubuntu 14.04.5和Apache2从Puphpet构建的Vagrant盒子。以下是我的.htaccess重写规则。

<IfModule mod_rewrite.c>

# Enable Rewrite Engine
# ------------------------------
RewriteEngine On
RewriteBase /

# Redirect index.php Requests
# ------------------------------
RewriteCond %{THE_REQUEST} ^[^/]*/index\.php [NC]
RewriteCond %{THE_REQUEST} ^GET
RewriteRule ^index\.php(.+) $1 [R=301,L]

# Standard ExpressionEngine Rewrite
# ------------------------------
RewriteCond $1 !\.(css|js|gif|jpe?g|png) [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]

</IfModule>

现在,如果我将最后一行更改为RewriteRule ^.(.*)$ /index.php?/$1 [L],那么一切正常(添加?后面的.php)。但是,正如我所说,它在我朋友的计算机上运行得非常好,我想在根部解决这个问题,因为它是我工作的所有EE2网站的症状。

尝试解决这个问题需要考虑什么?我已经研究过$ _SERVER ['PATH_INFO']是否有效,而且确实如此。我很茫然。

感谢您对此事的任何帮助或亮点。

P.S。 我在ExpressionEngine 2文档中看到添加了?当主机需要强制查询字符串时,这是一种方法。如何禁用它?

0 个答案:

没有答案