HowtoForge Forums | HowtoForge - Linux Howtos and Tutorials

HowtoForge Forums | HowtoForge - Linux Howtos and Tutorials (http://www.howtoforge.com/forums/index.php)
-   General (http://www.howtoforge.com/forums/forumdisplay.php?f=25)
-   -   nginx and wordpress permalink settings (http://www.howtoforge.com/forums/showthread.php?t=57477)

onastvar 31st May 2012 22:07

nginx and wordpress permalink settings
 
I've added the following to nginx Directives for mysite

Code:

location / {
                try_files $uri $uri/ /index.php?$args;
      }

Any wordpress permalink settings besides default I get error
"ERROR 404 - Not Found!"

I followed The Perfect Server - Debian Squeeze (Debian 6.0) With BIND, Dovecot & Nginx [ISPConfig 3] to setup my server
The Perfect Server - Debian Squeeze (Debian 6.0) With BIND, Dovecot & Nginx [ISPConfig 3]

Permalink Settings (Settings > Permalinks) structure is

/%year%/%monthnum%/%day%/%postname%/

My vhost file looks like this:

Code:

server {
        listen *:80;


        server_name example.com www.example.com;

        root  /var/www/example.com/web;



        index index.html index.htm index.php index.cgi index.pl index.xhtml;



        error_page 400 /error/400.html;
        error_page 401 /error/401.html;
        error_page 403 /error/403.html;
        error_page 404 /error/404.html;
        error_page 405 /error/405.html;
        error_page 500 /error/500.html;
        error_page 502 /error/502.html;
        error_page 503 /error/503.html;
        recursive_error_pages on;
        location = /error/400.html {
            internal;
        }
        location = /error/401.html {
            internal;
        }
        location = /error/403.html {
            internal;
        }
        location = /error/404.html {
            internal;
        }
        location = /error/405.html {
            internal;
        }
        location = /error/500.html {
            internal;
        }
        location = /error/502.html {
            internal;
        }
        location = /error/503.html {
            internal;
        }

        error_log /var/log/ispconfig/httpd/example.com/error.log;
        access_log /var/log/ispconfig/httpd/example.com/access.log combined;


        ## Disable .htaccess and other hidden files
        location ~ /\. {
            deny all;
            access_log off;
            log_not_found off;
        }

        location = /favicon.ico {
            log_not_found off;
            access_log off;
        }

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

        location /stats {
            index index.html index.php;
            auth_basic "Members Only";
            auth_basic_user_file /var/www/clients/client0/web1/.htpasswd_stats;
        }

        location ^~ /awstats-icon {
            alias /usr/share/awstats/icon;
        }

        location ~ \.php$ {
            try_files $uri =404;
            include /etc/nginx/fastcgi_params;
            fastcgi_pass 127.0.0.1:9010;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param PATH_INFO $fastcgi_script_name;
            fastcgi_intercept_errors on;
        }


               
}

Any ideas how to make nginx work with wordpress?

Thanks!

falko 31st May 2012 23:44

I have this in my nginx Directives field:
Code:

      location / {
                try_files $uri $uri/ /index.php?$args;
      }

      # Add trailing slash to */wp-admin requests.
      rewrite /wp-admin$ $scheme://$host$uri/ permanent;

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


onastvar 1st June 2012 17:48

Thanks Falko, that worked!

Do you know how long it takes ISPConfig to process the
change I make in DNS, nginx directives, etc?

falko 2nd June 2012 11:18

The backend processes changes once per minute.

onastvar 4th July 2012 08:43

I'm using following nginx directives for one web site (i.e. http://domain1.com/) which is WordPress

Code:

location / {
                try_files $uri $uri/ /index.php?$args;
      }

      # Add trailing slash to */wp-admin requests.
      rewrite /wp-admin$ $scheme://$host$uri/ permanent;

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

Anyone knows, how can I make another wordpress site works under the same domain, just another folder
(i.e. http://domain1.com/test/site1) ?

Thanks!!!

onastvar 12th November 2012 06:27

Anyone knows, how can I make another wordpress site works under the same domain, just another folder

(i.e. http://domain1.com/test/site1) ?

falko 12th November 2012 13:16

Try

Code:

      location /test/site1 {
                try_files $uri $uri/ /test/site1/index.php?$args;
      }

      # Add trailing slash to */wp-admin requests.
      rewrite /test/site1/wp-admin$ $scheme://$host$uri/ permanent;


onastvar 13th November 2012 20:01

Thank You Falko! This worked perfectly.

Ovidiu 7th January 2013 16:50

Quote:

Originally Posted by falko (Post 279984)
I have this in my nginx Directives field:
Code:

      location / {
                try_files $uri $uri/ /index.php?$args;
      }

      # Add trailing slash to */wp-admin requests.
      rewrite /wp-admin$ $scheme://$host$uri/ permanent;

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


Thanks Falko, that worked perfectly except for one minor annoyance:

if I visit my backend I mysite.tld/wp-admin/index.php the drop-down/hover menus in the backend menu don't work.
If I visit mysite.tld/wp-admin/ everything works perfectly. can we somehow strip the index.php from dashboard URLs?


All times are GMT +2. The time now is 08:50.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2014, vBulletin Solutions, Inc.