server { listen 80; server_name suckup.de www.suckup.de blog.voku-online.de linux.voku-online.de windows.voku-online.de ubuntu.voku-online.de allgemein.voku-online.de cdn1.voku-online.de cdn2.voku-online.de cdn3.voku-online.de cdn4.voku-online.de cdn5.voku-online.de *.suckup.de; root /var/www/www.suckup.de/web/; index index.php; access_log /var/log/nginx/suckup.access.log main; error_log /var/log/nginx/suckup.error.log; log_not_found on; ## Wordpress3 #if (!-e $request_filename) { #rewrite ^(.+)$ /index.php?q=$1 last; #break; #} ## Wordpress3 MU #if (!-e $request_filename) { #rewrite ^.+/?(/wp-.*) $1 last; #rewrite ^.+/?(/.*\.php)$ $1 last; #rewrite ^(.+)$ /index.php?q=$1 last; #break; #} ## Wordpress3 Multi-Domain rewrite ^.*/files/(.*)$ /wp-includes/ms-files.php?file=$1 last; if (!-e $request_filename) { rewrite ^.+/?(/ms-.*) $1 last; rewrite ^/files/(.+) /wp-includes/ms-files.php?file=$1 last; rewrite ^.+/?(/wp-.*) $1 last; rewrite ^.+/?(/.*.php)$ $1 last; rewrite ^(.+)$ /index.php?q=$1 last; break; } location ~* ^.+.(htm|html|jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)(\?[0-9]+)?$ { access_log off; expires max; root /var/www/www.suckup.de/web/; rewrite ^/.(/wp-.*/.*.(html|jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js))(\?[0-9]+)?$ $1 last; break; rewrite ^.*/files/(.*(html|jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js))(\?[0-9]+)?$ /wp-includes/ms-files.php?file=$1 last; break; if (!-e $request_filename) { rewrite ^.+/?(/wp-.*) $1 last; rewrite ^.+/?(/.*.php)$ $1 last; rewrite ^(.+)$ /index.php?q=$1 last; break; } } ## Wordpress-Forum if (!-e $request_filename) { rewrite ^/forums/topic/(.*)$ /forums/topic.php?q=$1 last; rewrite ^/forums/forum/(.*)$ /forums/forum.php?q=$1 last; rewrite ^/forums/profile/(.*)$ /forums/profile.php?q=$1 last; rewrite ^/forums/view/(.*)$ /forums/view.php?q=$1 last; rewrite ^/forums/tags/(.*)$ /forums/tags.php?q=$1 last; rewrite ^/forums/rss/(.*)$ /forums/rss.php?q=$1 last; rewrite ^/forums/bb-admin/ /forums/bb-admin/index.php last; rewrite ^/forums/ /forums/index.php last; break; } ## Wordpress W3 Total Cache 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; set $pgcache ""; if ($request_method = GET) { set $pgcache "${pgcache}D"; } if ($args = "") { set $pgcache "${pgcache}I"; } #if ($http_cookie !~ (comment_author_|wordpress|wordpress_logged_in|wp-postpass_)) { #set $pgcache "${pgcache}S"; #} if (-f $document_root/wp-content/w3tc/pgcache/$request_uri/_index.html) { set $pgcache "${pgcache}K"; } #if ($pgcache = DISK) { if ($pgcache = DIK) { rewrite ^ /wp-content/w3tc/pgcache/$request_uri/_index.html break; } #set $totalcache_file ''; #set $totalcache_uri $request_uri; #if ($request_method = POST) { #set $totalcache_uri ''; #} #if ($query_string) { #set $totalcache_uri ''; #} #if ($http_cookie ~* "comment_author_|wordpress|wp-postpass_" ) { #set $totalcache_uri ''; #} #if ($totalcache_uri ~ ^(.+)$) { #set $totalcache_file /wp-content/w3tc-suckup.de/pgcache/$1/_default_.html; #} #if (-f $document_root$totalcache_file) { #rewrite ^(.*)$ $totalcache_file break; #} ## Wordpress SuperCache #set $supercache_file ''; #set $supercache_uri $request_uri; #if ($request_method = POST) { #set $supercache_uri ''; #} #if ($query_string) { #set $supercache_uri ''; #} #if ($http_cookie ~* "comment_author_|wordpress|wp-postpass_" ) { #set $supercache_uri ''; #} #if ($supercache_uri ~ ^(.+)$) { #set $supercache_file /wp-content/cache/supercache/$http_host/$1index.html; #} #if (-f $document_root$supercache_file) { #rewrite ^(.*)$ $supercache_file break; #} #if (!-e $request_filename) { #rewrite . /index.php last; #} location ~* ^.+.(htm|html|jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)(\?[0-9]+)?$ { root /var/www/www.suckup.de/web/; access_log off; expires max; break; } ## Optimierung - "(css/js).php" to "(css/js)" location /wp-content/plugins/wp-special-textboxes/css/ { location ~* \.(css.php)$ { if ($args ~* ver=(.*)$) { rewrite ^ $scheme://$host/wp-content/nginx-cache/wp-special-textboxes.css? permanent; } } } location /wp-content/plugins/wp-special-textboxes/js/ { location ~* \.(js.php)$ { if ($args ~* ver=(.*)$) { rewrite ^ $scheme://$host/wp-content/nginx-cache/wstb.js? permanent; } } } if ($args ~* mystique=css(.*)$) { rewrite ^ $scheme://$host/wp-content/nginx-cache/style_voku.css? permanent; } if ($args ~* mystique=jquery_init(.*)$) { rewrite ^ $scheme://$host/wp-content/nginx-cache/mystique_jquery_init.js? permanent; } if (-f $request_filename) { break; } if (!-e $request_filename) { rewrite ^(.+)$ /index.php?q=$1 last; } # ----------------------------------------- # http://wiki.nginx.org/Wordpress ## remove any multislashes // if ($request_uri ~* "\/\/") { rewrite ^/(.*) $scheme://$host/$1 permanent; } ## Slash am Ende anfuegen ?!? #if ($request_uri ~* "^[\w\-\/]+[^\/?]$") { #rewrite ^(.*)$ $scheme://$host$1/ permanent; #} ## www eifuegen #if ($host !~* ^(www|subdomain)) { #rewrite ^/(.*)$ $scheme://www.$host/$1 permanent; #} ## www vorne entfernen if ($host ~* ^www\.(.*)) { set $host_without_www $1; rewrite ^(.*)$ http://$host_without_www$1 permanent; } ## immer SSL verwenden #rewrite ^(.*) https://$server_name$1 permanent; ## immer HTTP verwenden #rewrite ^(.*) http://$server_name$1 permanent; ## Feedburner rewrite ^e107_plugins/rss_menu/rss.php?(.*) http://suckup.de/feed/ permanent; location /feed { index index.xml; set $feed_redirect 'http://feeds.feedburner.com/suckup'; if ($http_user_agent ~* "FeedBurner") { set $feed_redirect ''; } if ($http_user_agent ~* "FeedValidator") { set $feed_redirect ''; } if ($http_user_agent ~* "Googlebot") { set $feed_redirect ''; } if ($feed_redirect ~* "^(.+)$") { rewrite ^ $feed_redirect? permanent; } } #if ($http_user_agent !~ "FeedBurner") { #rewrite ^/feed/?$ http://feeds.feedburner.com/suckup last; #break; #} # ----------------------------------------- location / { try_files $uri $uri/ @suckup; } location @suckup { include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root/index.php; fastcgi_param QUERY_STRING q=$uri&$args; fastcgi_param SCRIPT_NAME /index.php; fastcgi_pass 127.0.0.1:11000; } #location ~ \.php$ { #proxy_pass http://127.0.0.1:8080; #} location ~ \.php$ { try_files $uri @suckup; fastcgi_index index.php; fastcgi_pass 127.0.0.1:11000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /etc/nginx/fastcgi_params; } ## .htaccess & .htpassword sperren location ~ /\.ht { deny all; } }