0

我刚刚将我的网站移动到另一台服务器,安装 nginx + php5-fpm 后,我注意到一个奇怪的永久链接结构。服务器名称在永久链接结构中重复。

例子:

www.myserver.com/myserver.com/%postname%-%day%%monthnum% 这些是我想使用的重写规则 wordpress 显示我添加到 .htaccess (我不能使用,因为它是 nginx。)那里是 RewriteBase 中的这个错误吗,我相信它应该只是一个“/””,而不是它告诉我:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /myserver.com/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /myserver.com/index.php [L]
</IfModule>

我的 nginx.conf 看起来像这样:

user www-data;
worker_processes 4;
pid /var/run/nginx.pid;

events {
    worker_connections 1024;
    # multi_accept on;
}


http {
    ##
    # Basic Settings
    ##

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 2;
    types_hash_max_size 2048;
    # server_tokens off;

    # server_names_hash_bucket_size 64;
    # server_name_in_redirect off;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    #access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;
    access_log off;
 client_max_body_size   128M;
    gzip on;
    gzip_disable "msie6";
    gzip_vary on;
    gzip_proxied any;
    gzip_comp_level 6;
    gzip_buffers 16 8k;
    gzip_http_version 1.1;
    gzip_types text/css text/javascript text/xml text/plain text/x-component application/javascript application/x-javascript application/json application/xml  application/rss+xml font/truetype application/x-font-ttf font/opentype application/vnd.ms-fontobject image/svg+xml;

    ##
    # Virtual Host Configs
    ##
    index index.php;
    ## See here: http://wiki.nginx.org/WordPress

    server {
        ## Your IP number goes here:
        listen  XXX.XXX.XXX.XXX;


 rewrite ^/wp-content/w3tc/min/([a-f0-9]+)\/(.+)\.(include(\-(footer|body))?(-nb)?)\.[0-9]+\.(css|js)$ /wp-content/w3tc/min/index.php?tt=$1&gg=$2&g=$3&t=$7 last;
        ## Your website name goes here.
        server_name myserver.com;
        ## Your only path reference.
            root /var/www/myserver.com;

                location /phpmyadmin {
           root /usr/share/;
           index index.php index.html index.htm;
           location ~ ^/phpmyadmin/(.+\.php)$ {
                   try_files $uri =404;
                   root /usr/share/;
                   fastcgi_pass 127.0.0.1:9000;
                   fastcgi_index index.php;
                   fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                   include /etc/nginx/fastcgi_params;
           }
           location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
                   root /usr/share/;
           }
    }
            location = /favicon.ico {
            log_not_found off;
            access_log off;
        }

            location = /robots.txt {
            allow all;
            log_not_found off;
            access_log off;
        }

            location / {
            # This is cool because no php is touched for static content
            try_files $uri $uri/ /index.php;
        }

        location ~ \.php$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;    
        }

        location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
            expires max;
            log_not_found off;
        }

    }

}
4

1 回答 1

0

Wordpress 检查 Apache mod_rewrite,WP 需要它与永久链接正常工作,dixit the codex

如果你想让它工作更容易使用 Nginx_helper 插件,你可以在这里找到它:https ://wordpress.org/extend/plugins/nginx-helper/

在之前链接的 codex 中,您将找到使 Wordpress 与 Nginx 一起使用所需的所有配置文件!

希望能帮助到你!

于 2013-05-01T20:24:12.157 回答