伙计们,网站运行良好,只是文件 .htaccess 不起作用,我用谷歌搜索了很多,已经启用a2enmod rewrite
并尝试了很多东西,但是没有用。
obs:我以网站 example.com 为例
我/etc/apache2/sites-available/000-default.conf
是这样的:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
这就是我/etc/apache2/apache2.conf
的:
<Directory />
Options FollowSymLinks
AllowOverride All
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>
这就是我的 .htaccess 的样子:
#DISALOW DIRECTORY LISTING
Options -Indexes
ErrorDocument 400 /.error.php
ErrorDocument 401 /.error.php
ErrorDocument 403 /403.php
ErrorDocument 404 /404.php
ErrorDocument 405 /.error.php
ErrorDocument 408 /.error.php
ErrorDocument 414 /.error.php
ErrorDocument 500 /500.php
ErrorDocument 502 /.error.php
ErrorDocument 504 /.error.php
但它不是不允许目录列表,也不是在404.php
找不到页面时显示内容。
该
AllowOverride
指令的当前默认设置会导致您的问题。如果您想允许.htaccess
某个虚拟主机的文件覆盖所有可能的内容,则需要以如下方式更改其配置:更改 .conf 文件后不要忘记重新加载或重新启动 Apache。