Created
October 24, 2012 19:04
-
-
Save trepmal/3948153 to your computer and use it in GitHub Desktop.
wpms nginx conf
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
server { | |
listen 80 default; | |
server_name example.com *.example.com; | |
# server-side header so I don't have w3c validation errors | |
add_header X-UA-Compatible "IE=Edge,chrome=1"; | |
# edit locations as desired | |
access_log /var/www/example.com/logs/access.log; | |
error_log /var/www/example.com/logs/error.log; | |
root /var/www/example.com/html; | |
index index.php; | |
# include /etc/nginx/global/restrictions.conf; | |
# contents of restrictions.conf: | |
# Global restrictions configuration file. | |
# Designed to be included in any server {} block.</p> | |
location = /favicon.ico { | |
log_not_found off; | |
access_log off; | |
} | |
location = /robots.txt { | |
allow all; | |
log_not_found off; | |
access_log off; | |
} | |
# Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac). | |
location ~ /\. { | |
deny all; | |
access_log off; | |
log_not_found off; | |
} | |
# Deny access to any files with a .php extension in the uploads directory | |
location ~* ^/wp-content/uploads/.*.php$ { | |
deny all; | |
access_log off; | |
log_not_found off; | |
} | |
# Deny access to any files with a .php extension in the uploads directory for multisite | |
location ~* /files/(.*).php$ { | |
deny all; | |
access_log off; | |
log_not_found off; | |
} | |
# end contents of restrictions.conf | |
location ~* \.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mi$ | |
access_log off; | |
expires 30d; | |
} | |
# WordPress multisite rules. | |
# Designed to be included in any server {} block. | |
# This order might seem weird - this is attempted to match last if rules below fail. | |
# http://wiki.nginx.org/HttpCoreModule | |
location / { | |
try_files $uri $uri/ /index.php?$args; | |
} | |
# Add trailing slash to */wp-admin requests. | |
rewrite /wp-admin$ $scheme://$host$uri/ permanent; | |
# Directives to send expires headers and turn off 404 error logging. | |
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ { | |
expires 24h; | |
log_not_found off; | |
} | |
# Pass uploaded files to wp-includes/ms-files.php. | |
rewrite /files/$ /index.php last; | |
# For multisite: Use a caching plugin that creates symlinks to the correct subdirectory $ | |
set $cachetest "$document_root/wp-content/ms-filemap/${host}${uri}"; | |
if ($uri ~ /$) { | |
set $cachetest ""; | |
} | |
if (-f $cachetest) { | |
# Rewrites the URI and stops rewrite processing so it doesn't start over and atte$ | |
rewrite ^ /wp-content/ms-filemap/${host}${uri} break; | |
} | |
if ($uri !~ wp-content/plugins) { | |
rewrite /files/(.+)$ /wp-includes/ms-files.php?file=$1 last; | |
} | |
# Rewrite multisite '.../wp-.*' and '.../*.php'. | |
if (!-e $request_filename) { | |
rewrite ^/[_0-9a-zA-Z-]+(/wp-.*) $1 last; | |
rewrite ^/[_0-9a-zA-Z-]+.*(/wp-admin/.*\.php)$ $1 last; | |
rewrite ^/[_0-9a-zA-Z-]+(/.*\.php)$ $1 last; | |
} | |
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 | |
# | |
location ~ \.php$ { | |
if (!-e $request_filename) { | |
rewrite ^/(.+)$ /index.php?q=$1 last; | |
} | |
try_files $uri =403; | |
fastcgi_index index.php; | |
fastcgi_pass php5-fpm-sock; | |
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; | |
include /etc/nginx/fastcgi_params; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment