WordPress and Drupal's Nginx configuration rewrite rewrite rule example

  • 2020-05-10 23:30:58
  • OfStack

WordPress

wordpress is still the most popular blogging system in the world. More and more websites built by wordpress are using nginx server software. Here we share the nginx rewrite rules of WordPress:
 


  server {
    listen    80;
    server_name www.ofstack.com ofstack.com;
    access_log /data/logs/nginx/www.ofstack.com.access.log main;
 
    index index.html index.php;
    root /data/site/www.ofstack.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;
}

  restart your nginx

Drupal nginx rewrite the rule
Drupal is an open source content management framework written in PHP language, commonly known as CMS. Many people are building their own blogs with Drupal. Here, we would like to share the nginx rewriting rules of Drupal:


server {
 ...
location / {
 # This is cool because no php is touched for static content
 try_files $uri @rewrite;
 }
location @rewrite {
 # Some modules enforce no slash (/) at the end of the URL
 # Else this rewrite block wouldn't be needed (GlobalRedirect)
 rewrite ^/(.*)$ /index.php?q=$1;
 }
location ~ \.php$ {
 fastcgi_split_path_info ^(.+\.php)(/.+)$;
 #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
 include fastcgi_params;
 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 fastcgi_intercept_errors on;
 fastcgi_pass unix:/tmp/phpfpm.sock;
 }
...
 }

 
Restart nginx


Related articles: