我需要将服务器上的 Debian 操作系统版本从 7 升级到 8。因此我这样做了:
aptitude update
aptitude upgrade
获得最新的 wheezy 软件包,然后- 在 /etc/apt/source.list(以及其他 source.list.d/ 文件)中将 wheezy 改为 jessie
aptitude update
aptitude dist-upgrade
- 我重启了服务器
然后我使用新的配置扩展名更改了我的 vhost 文件名:
/etc/apache2/sites-available/mydomain 到 /etc/apache2/sites-available/mydomain.conf
这是一个例子:
<VirtualHost *:80>
ServerName mydomain
DocumentRoot /var/www/mydomain/web
<Directory /var/www/mydomain/web>
Options Indexes Multiviews FollowSymLinks
AllowOverride all
Require all granted
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error-mydomain.log
CustomLog ${APACHE_LOG_DIR}/access-mydomain.log combined
</VirtualHost>
然后我重新启动了 apache 服务
在这种情况下,该网站是可以访问的,但是,由于重写规则不适用,它无法正常工作!
尽管,
- 我检查了 apache 配置没有错误
mod_rewrite 模块处于活动状态(它位于 /etc/apache2/mods-enabled/ 和 phpinfo() 中)
我还尝试删除
<IfModule mod_rewrite.c>
vhost 中的语句,保留重写规则并重新加载配置:未遵循规则。- 我还尝试将重写规则放在网站根目录的 .htaccess 中:但效果不佳
这是最令人不安的。
可能是什么问题?我应该检查哪个日志或配置文件?将 Debian 7 升级到 8 时,我还应该执行与重写模块相关的其他步骤吗?
谢谢
答案1
我有同样的问题,但我找到了答案。
去:
/etc/apache2/sites-available/
并编辑你的 vhosts 文件(我的文件名为 000-default.conf)
你必须添加这个
允许覆盖全部
或者
允许覆盖文件信息
例子:
<VirtualHost *:80>
<Directory />
AllowOverride All
</Directory>
ServerName tududu.pl
DocumentRoot /var/tududu
</VirtualHost>
之后你必须
service apache2 restart