REQUEST_FILENAME 问题,停止运行 php 升级

REQUEST_FILENAME issues, stopped functioning with php upgrade

所以我有一个 request_filename 规则突然停止工作了。我最近将服务器升级到了 Jessie,php 也随之升级。

但是,这是我目前的重写规则。

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.URL\.com$
RewriteRule ^/?$ "http\:\/\/URL\.com\/" [R=301,L]

RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index.html$ http://www.URL.com/ [R=301,L]

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ .html

RewriteRule ^(.*)/$  [NC,L]

.htaccess 文件归 www-data 所有,可以访问。

我好像在错误日志中看到了这个

[Thu Jun 04 19:43:21.641790 2015] [authz_core:debug] [pid 15423] mod_authz_core.c(809): [client 213.138.113.36:65331] AH01626: authorization result of Require all granted: granted, referer: http://www.URL.com/
[Thu Jun 04 19:43:21.641883 2015] [authz_core:debug] [pid 15423] mod_authz_core.c(809): [client 213.138.113.36:65331] AH01626: authorization result of <RequireAny>: granted, referer: http://www.URL.com/
[Thu Jun 04 19:43:21.642056 2015] [core:info] [pid 15423] [client 213.138.113.36:65331] AH00128: File does not exist: /var/www/URL/about, referer: http://www.URL.com/

可能是我没有加载到我的虚拟主机配置文件中?

<VirtualHost *:80>
        ServerAdmin EMAIL@hotmail.com
        ServerName URL.com
        ServerAlias www.URL.com
        ServerAlias *.URL.com

        SetEnv APPLICATION_ENV dev

        DocumentRoot /var/www/URL

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride All
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/URL.error.log
        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel debug

        CustomLog  ${APACHE_LOG_DIR}/URL.access.log combined
</VirtualHost>

这是我接手托管的网站,我通常不使用 .htaccess 文件。如有任何建议,我们将不胜感激。

我遇到的问题是页面尝试加载为 www.url.com/about 由于文件为 about.html.

而失败

问题是我的主要 apache2.conf 文件。

AllowOveride 已禁用。

我做了以下更改

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

我看到这里发生了一些事情。我没有看到实际文档根目录的目录指令。然后不会使用 .htaccess 文件,因为没有为您的文档根目录指定 AllowOverride All 。此外,您不应在 2.4 中使用 2.2 指令。将您的 Vhost 文件更改为如下所示。我稍微修改了它并为您的根目录添加了目录指令。

<VirtualHost *:80>
        ServerAdmin EMAIL@hotmail.com
        ServerName URL.com
        ServerAlias *.URL.com

        SetEnv APPLICATION_ENV dev

        DocumentRoot /var/www/URL

        <Directory "/var/www/URL">
                Options -Indexes -MultiViews
                AllowOverride All
                Require all granted
        </Directory>
        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride All
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Require all granted
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/URL.error.log
        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel debug

        CustomLog  ${APACHE_LOG_DIR}/URL.access.log combined
</VirtualHost>