我无法使我的 .htaccess 文件正常工作。
在我的apache2.conf
文件中,有以下内容。
<Directory /home/felix/mysite>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
但这并没有改变任何事情。当我尝试访问我网站上的不同页面时,我仍然会收到 404 错误。
编辑更多信息:
Ubuntu 16.04
Apache 2.4
在我的网站中,sites-available
我的mysite.se.conf
文件如下所示:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /home/felix/mysite
ServerName mysite.se
ServerAlias www.mysite.se
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
我尝试从 apache2.conf 中删除此部分:
<Directory /home/felix/mysite>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
现在收到了此消息You don't have permission to access / on this server. Server unable to read htaccess file, denying access to be safe
。
即使我把那部分加回来了,现在我还是会收到此消息。
我尝试运行的网站是用 wordpress 构建的。在这个网站的根文件夹中,我有一个 .htaccess 文件,如下所示:
# supress php errors
php_flag display_startup_errors off
php_flag display_errors off
php_flag html_errors off
php_value docref_root 0
php_value docref_ext 0
# End Error
# BEGIN WordPress
<IfModule mod_rewrite.c>
ReewriteEngine On
eRewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
问题是这些设置在另一台 Ubuntu 机器上有效。而服务器管理员无法在我的机器上找到错误。所以他说这可能是 apache2 配置中的一些错误。但我找不到它,一切似乎都正常。
我认为这可能是错误的原因:https://www.digitalocean.com/community/questions/wordpress-permalinks-not-working-on-ubuntu-14-04
具体来说:Also make sure your .htaccess file has the proper permissions for WP to write to it. You'll see an error if it doesn't.
我怎样才能将其更改为正确的权限?
解决方案:
很抱歉,我无法提供更好的解决方案。但我所做的就是sudo a2enmod rewrite
。sudo service apache2 restart
第一次这样做时,我遇到了错误(500 服务器错误或 403 权限错误,记不清了),但今天早上再次尝试后,成功了。所以我的文件仍然像上面那样。
答案1
尝试编辑mysite.se.conf
:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /home/felix/job/fello
ServerName test.fello.se
ServerAlias www.test.fello.se
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory "/home/felix/job/fello">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
并检查您网站的路径/home/felix/mysite
或/home/felix/job/fello
?