我使用以下脚本设置了一个apache虚拟主机 -
<VirtualHost *:80>
ServerAdmin admin@example.com
ServerName nvoids.cu.cc
ServerAlias www.nvoids.cu.cc
DocumentRoot /var/www/html/blog
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
现在这个网址正常 - http://nvoids.cu.cc 它提供来自 / var / www / html / blog
的页面但wordpress永久链接不起作用
http://nvoids.cu.cc/hello/会抛出404页。
为此,我尝试更改.htaccess文件,如下所示 -
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . blog/index.php [L]
</IfModule>
但它不起作用。
答案 0 :(得分:1)
你需要
AllowOverride All
在VirtualHost指令中启用.htaccess文件。
答案 1 :(得分:0)
你的php.ini中是否启用了以下模块,该模块应该取消注释?您是否在Apache错误日志文件中看到任何错误?
LoadModule rewrite_module
答案 2 :(得分:0)
如Daniel所述,虚拟服务器conf应该是 -
<VirtualHost *:80>
ServerAdmin admin@example.com
ServerName nvoids.cu.cc
ServerAlias www.nvoids.cu.cc
DocumentRoot /var/www/html/blog
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/html/blog/>
AllowOverride All
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
.htaccess文件由wordpress修改 -
# 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