wordpress网址不使用apache虚拟主机

时间:2014-09-07 06:16:06

标签: wordpress apache .htaccess

我使用以下脚本设置了一个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>

但它不起作用。

3 个答案:

答案 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