ребята, сайт работает нормально, только файл .htaccess, который не работает, я много гуглил, уже включил a2enmod rewrite
и попробовал много вещей, но это не сработало.
obs: я использую сайт example.com в качестве примера
, вот как мой /etc/apache2/sites-available/000-default.conf
:
<VirtualHost *:80>
ServerAdmin admin@example.com
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
, когда страница не найдена.
The current default setup of the AllowOverride
directive causes your problem. If you want to allow override of everything possible by a .htaccess
file for certain virtual host, you need to change its configuration in a way as this:
cat /etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
ServerAdmin admin@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot "/var/www/example.com/public_html"
<Directory "/var/www/example.com/public_html">
AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Don't forget to reload or restart Apache after change of the .conf files.