升级后.htaccess无效

时间:2017-02-17 08:39:15

标签: php apache .htaccess ubuntu mod-rewrite

我的提供商1天前更新服务器(我不知道上一版本)。 现在重写不起作用索引包括,执行和重定向: http://testdomena.com - > http://testdomena.com/index/index(更正) 但在那之后,我看到了:

Not Found

The requested URL /index/index was not found on this server.

Apache/2.4.7 (Ubuntu) Server at testdomena.com Port 80

地址是正确的,在更新之前一切正常。

现在我的服务员看起来像那样:

  • Ubuntu 14.04.5 LTS(GNU / Linux 3.13.0-108-generic x86_64)
  • 服务器版本:Apache / 2.4.7(Ubuntu)
  • PHP 5.5.9-1

apache2.conf

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Require all denied
</Directory>

<Directory /usr/share>
    AllowOverride None
    Require all granted
</Directory>

<directory /var/www/>
    options indexes followsymlinks
    allowoverride none
    require all granted
</directory>

<directory /home/>
    options indexes followsymlinks
    allowoverride none
    require all granted
</directory>

#<Directory /srv/>
#   Options Indexes FollowSymLinks
#   AllowOverride None
#   Require all granted
#</Directory>




# AccessFileName: The name of the file to look for in each directory
# for additional configuration directives.  See also the AllowOverride
# directive.
#
AccessFileName .htaccess

testdomena.conf

<VirtualHost *:80>
        ServerName testdomena.com
        DocumentRoot /home/web/testdomena
        <Directory /home/web/testdomena/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Require all granted
        </Directory>
</VirtualHost>

的.htaccess

SetEnv APPLICATION_ENV "production"

Options +FollowSymlinks -Indexes

RewriteEngine On
RewriteBase /

# No www in url
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^(.*)$ http://testdomena.com/$1 [R=301,L]

# Maintain page
RewriteCond %{DOCUMENT_ROOT}/index.php !-f
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* maintain.php [PT,L]

# Files and dirs are not welcome
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/(media|styles)/?

# And we don't want to check www subdomain
RewriteCond %{HTTP_HOST} !=www.testdomena.com
RewriteRule .* index.php [PT,L]

来自phpinfo()的部件

Loaded Modules
core mod_somod_watchdog http_core mod_log_config mod_logio mod_version mod_unixd mod_access_compat mod_alias mod_auth_basic mod_authn_core mod_authn_file mod_authz_core mod_authz_groupfile mod_authz_host mod_authz_user mod_autoindex mod_cgi mod_deflate mod_dir mod_env mod_filter mod_headers mod_mime prefork mod_negotiation mod_php5 mod_reqtimeout mod_rewrite mod_setenvif mod_socache_shmcb mod_ssl mod_status

1 个答案:

答案 0 :(得分:0)

我找到答案: https://serverfault.com/questions/372733/apache-file-negotiation-failed

TypesConfig /etc/mime.types 问题是/etc/mime.types文件被更新替换,在替换文件中,PHP部分被注释掉了。搜索时,我发现:

#application/x-httpd-php                        phtml pht php
#application/x-httpd-php-source                 phps
#application/x-httpd-php3                       php3
#application/x-httpd-php3-preprocessed          php3p
#application/x-httpd-php4                       php4
#application/x-httpd-php5                       php5

我必须从包含php相关内容的每一行中删除#,然后保存并重新启动Apache Web服务器。这解决了问题,而没有修改mime.conf文件