下文中整理了在nginx中配置wordpress博客的URL重寫規則了,包括了整站配置與固定鏈接配置了,下面我們就一起來看看吧.
配置代碼,代碼如下:
- server {
- listen 80;
- server_name www.companysz.com Vevb.com;
- access_log /data/logs/nginx/www.companysz.com.access.log main;
- index index.html index.php;
- root /data/site/www.companysz.com;
- location / {
- try_files $uri $uri/ /index.php?$args;
- add_header Pragma "public";
- expires 12h;
- }
- rewrite /wp-admin$ $scheme://$host$uri/ permanent;
- location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
- access_log off;
- log_not_found off;
- expires max;
- }
- location ~ \.php$ {
- try_files $uri =404;
- fastcgi_split_path_info ^(.+\.php)(/.+)$;
- #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
- include fastcgi_params;
- fastcgi_index index.php;
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
- # fastcgi_intercept_errors on;
- fastcgi_pass 127.0.0.1:9000;
- }
- location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
- {
- expires 24h;
- access_log off;
- }
- location ~ .*\.(js|css)$
- {
- expires 24h;
- access_log off;
- }
重啟你的nginx即可,固定鏈接(URL重寫)在nginx的規則,只是用于WordPress單站點,一般默認安裝的,不是多站點,將以下代碼插入location的root中,代碼如下:
- if (!-f $request_filename){
- set $rule_1 1$rule_1;
- }
- if (!-d $request_filename){
- set $rule_1 2$rule_1;
- } //Vevb.com
- if ($rule_1 = "21"){
- rewrite /. /index.php last;
- }
我的WordPress在nginx配置情況,代碼如下:
- location / {
- root html/xiedexu.cn;
- index index.php index.html index.htm;
- if (!-f $request_filename){
- set $rule_1 1$rule_1;
- }
- if (!-d $request_filename){
- set $rule_1 2$rule_1;
- }
- if ($rule_1 = "21"){
- rewrite /. /index.php last;
- }
- add_header Cache-Control private;
- }
現在在新版本的已有不妥,會有兩個規則警告提示,博友@五月里徜徉的小貓咪 說是nginx的if陷阱,分享了一個新的配置方案,方案比較全,不過如果你的conf不是那樣配置的,只需要在location中插入:
try_files $uri $uri/ /index.php?$args;
發下自用的WordPress Nginx重定向規則,適合非子目錄安裝,代碼如下:
- location / {
- try_files $uri $uri/ /index.php?$args;
- }
- rewrite /wp-admin$ $scheme://$host$uri/ permanent;
AMH自帶的為,代碼如下:
- 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;
- }
- }
簡單使用方法:AMH使用AMRewrite插件新建一條Rewrite規則,校驗規則,然后編輯虛擬主機,選擇新建的規則.
直接改nginx.conf了解的自然了解,不熟悉的隨便就癱了.
新聞熱點
疑難解答
圖片精選