问题
我安装了Wordpress。我打开了漂亮永久链接(帖子名称)。除主页之外的任何页面都是404 Not Found
。这似乎表明了重写问题。
我的设置
Ubunutu 14.04 使用localhost作为我的URL 我的apache配置是/etc/apache2/sites-available/000-default.conf
我的wordpress位于/var/www/wordpress/
我的相关htaccess位于/var/www/wordpress/.htaccess
我尝试了什么
当我运行a2enmod rewrite
时,我得到了
Module rewrite already enabled
我的.htaccess
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
我的000-default.conf
文件apache config
<Directory /var/www/wordpress/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
我已经在规范问题上尝试了所有答案。
How to enable mod_rewrite for Apache 2.2
我的问题
为什么我的重写不起作用?
答案 0 :(得分:1)
我发现我需要在/etc/apache2/apache2.conf
编辑apache配置并将/var/www/
目录更改为AllowOverride All
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
我原本以为我的000-default.conf
会覆盖这个,但事实并非如此,这解决了这个问题。
答案 1 :(得分:1)
检查正确的vhost配置的步骤:
检查是否有&#34; vhostname .conf&#34;文件在您的&#34;网站 - 可用&#34;目录。然后在&#34; sites-enabled&#34;中检查该文件是否有有效的符号链接。目录。您可以按a2ensite vhostname
创建缺少的网站符号链接。在编辑器中打开此文件。它应该包含类似
<VirtualHost *:80>
ServerAdmin webmaster@sitename.net
ServerName sitename.net
ServerAlias www.site-name.net
DocumentRoot /var/www/site-folder/htdocs
<Directory /var/www/site-folder/htdocs/>
Options Indexes FollowSymLinks MultiViews
DirectoryIndex index.php7 index.php5 index.php index.html
AllowOverride All
# apache 2.2 and below only (following 3 lines)
Order allow,deny
Allow from all
Deny from none
# apache 2.4 only
Require all granted
</Directory>
确保DocumentRoot
文件夹具有匹配的<Directory /path/to/docroot>
块。放入此块AllowOverride All
或您希望在&#34; .htaccess&#34;中覆盖的任何选择性权限。
确保已启用重写模块。
sudo a2enmod rewrite
修改配置后,不要忘记重启/重新加载apache。
sudo apache2ctl graceful
检查模块和vhost配置是否已加载。
apache2ctl -t -D DUMP_VHOSTS
apache2ctl -t -D DUMP_MODULES