wordpress apache 和 nginx 的伪静态

1.apche配置伪静态:

首先要开启apache的url_rewrite模块

(一般默认都是开启的),也就是在httpd.conf( /etc/httpd/conf/httpd.conf)中去掉这句话的注释LoadModule rewrite_module modules/mod_rewrite.so,httpd.conf中找到AllowOverride,把AllowOverride None修改成AllowOverride all

在 wordpress 的网站根目录下的 .htaccess 配置添加(覆盖)即可:


    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]


原来的:


RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]



2.ngix配置伪静态

Nginx 的配置在 vhost ,目录根据主机配置环境有关可能不同,就是域名的 config 文件加入:
操作方法:以下代码加入到网站的配置文件 xxxx.conf 中的 server{} 中。

根目录下WordPress的伪静态规则:

location / {
    if (-f $request_filename/index.html){
        rewrite (.*) $1/index.html break;
    }
    if (-f $request_filename/index.php){
        rewrite (.*) $1/index.php;
    }
    if (!-f $request_filename){
        rewrite (.*) /index.php;
    }
}

二级目录下WordPress的伪静态规则:

注意将以下代码中的“二级目录名”换成自己的真实二级目录名。

location /二级目录名/ {
    if (-f $request_filename/index.html){
        rewrite (.*) $1/index.html break;
    }
    if (-f $request_filename/index.php){
        rewrite (.*) $1/index.php;
    }
    if (!-f $request_filename){
        rewrite (.*) /二级目录名/index.php;
    }
}

3. 最后到WP后台设置--固定链接--固定连接模式推荐为自定义:/%post_id%.html

和 apache 的 .htaccess 不同, nginx 的需要重启 nginx 才能生效!

你可能感兴趣的:(wordpress apache 和 nginx 的伪静态)