Apache
在Apache下,利用mod_rewrite来实现URL的静态化。
.htaccess的内容如下:
# BEGIN WordPress RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress
Nginx
在上次《Nginx的Rewrite配置》中有个朋友问WordPress如何配置Rewrite,当时也没给个完整正确的答案,最近自己需要Nginx下配置,不得不去解决这个问题。
其实在Nginx下配置WordPress的Rewrite还是比较简单的,在location /{………………}里面加入
if (!-e $request_filename){ rewrite (.*) /index.php; }
即可实现。
下面是一个完整的vhost的配置文件
server { listen 80; server_name chinaz.com down.chinaz.com; location / { index index.html index.htm index.php; root /www/wwwroot/chinaz.com; 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; } } location ~ \.php$ { include fastcgi_params; fastcgi_index index.php; fastcgi_pass 127.0.0.1:8787; fastcgi_param SCRIPT_FILENAME /www/wwwroot/chinaz.com$fastcgi_script_name; } location /ccvita-status { stub_status on; access_log off; } }