Since I will shutdown my server soon, I decided tho post Nginx rewrite rules, that I used here. They might not be perfect (dokuwiki for example), but it's the best, that I have discovered.
Some of them took very long time to figure you
If you have some other, useful nginx rewrite rules, post them below
If you see something wrong with these rules, do not hesitate to point that out
bugzilla
cgit
hgweb
roundcube
yanopaste
dokuwiki
Some of them took very long time to figure you
If you have some other, useful nginx rewrite rules, post them below
If you see something wrong with these rules, do not hesitate to point that out
bugzilla
Code:
location ~ .*\.(pl|pm)$ {
deny all;
}
location = /localconfig {
deny all;
}
location ~ ^/(data|Bugzilla|template) {
deny all;
}
location ~ ^/docs/(.*)$ {
index index.html;
alias /usr/local/share/doc/bugzilla/$1;
}
location ~ .*\.(png|gif|jpg|map)$ {
allow all;
}
location ~ .*\.cgi$ {
fastcgi_pass unix:/var/run/fcgiwrap/fcgiwrap.sock;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
include fastcgi_params;
}
cgit
Code:
if (!-f $request_filename) {
rewrite ^/([^?/]+/[^?]*)?(?:\?(.*))?$ /cgit.cgi?url=$1&$2 last;
}
location ~ .*\.cgi$ {
fastcgi_pass unix:/var/run/fcgiwrap/fcgiwrap.sock;
fastcgi_param SCRIPT_FILENAME $document_root/cgit.cgi;
fastcgi_param CGIT_CONFIG /path/to/cgit.rc;
include fastcgi_params;
}
hgweb
Code:
location ~ ^/(.*)?? {
fastcgi_pass unix:/var/run/fcgiwrap/fcgiwrap.sock;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param SCRIPT_FILENAME /path/to/hgweb.cgi;
fastcgi_param HGWEB_CONFIG /path/to/hgweb.config;
include fastcgi_params;
}
roundcube
Code:
location ~ ^/(index\.php)??$ {
allow all;
fastcgi_pass local_php;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ ^.*\.(css|png|jpg|ico|gif|js|html??)$ {
allow all;
}
location / {
deny all;
}
yanopaste
Code:
location ~ ^/(index\.php)??$ {
allow all;
fastcgi_pass local_php;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ ^.*\.(css|png|jpg|ico|gif|js|html??)$ {
allow all;
}
location / {
deny all;
}
dokuwiki
Code:
location = /install.php {
deny all;
}
location ~ ^/(conf|data)/ {
deny all;
}
location / {
if (-f $request_filename) {
expires 3d;
add_header Cache-Control public;
break;
}
if (!-f $request_filename) {
rewrite ^/(.*)?(.*) /doku.php?id=$1&$2 last;
rewrite ^/$ /doku.php last;
break;
}
}
rewrite ^/_media/(.*) /lib/exe/fetch.php?media=$1 last;
rewrite ^/_detail/(.*) /lib/exe/detail.php?media=$1 last;
rewrite ^/_export/([^/]+)/(.*) /doku.php?do=export_$1&id=$2 last;
location ~ \.php {
allow all;
fastcgi_pass local_php;
fastcgi_index doku.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~* \.(png|gif|jpg|css|js|html)$ {
allow all;
}
location ~ ^/(\.htaccess\.dist|COPYING|README|VERSION)$ {
deny all;
}