Dieser Artikel ist Teil einer Reihe zum Webserver nginx.
Schau dir auch die anderen Artikel an: Zum Leitartikel
Nach der Installation von nginx stellte ich mich der Herausforderung, alle meine Simplemachines -Foren auf Nginx umzuziehen. In einigen hatte ich das PrettyUrls -Plugin installiert, da es einerseits schöner und sprechender aussieht und andererseits durch die Suchmaschinen wohl besser akzeptiert wird. Diese wollte ich natürlich auch weiterhin nutzen. Ich fand zwar eine Seite, die schon Rewrite-Regeln anbot, jedoch waren das noch nicht ausreichend viele, da ich zusätzlich noch für alle Aktionen die schönen URLs aktiviert hatte.
Meine finalen Regeln:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
server {
listen 80;
server_name forum.example.com *.forum.example.com;
error_log /var/log/nginx/forum.example.com.log warn;
root /var/www/forum.example.com/;
location / {
index index.php;
# Rules for: actions
rewrite ^/( activate| admin| announce| ban| boardrecount| buddy| calendar| cleanperms) /?$ /index.php?pretty%3Baction= $1 last;
rewrite ^/( collapse| convertentities| convertutf8| coppa| deletemsg| detailedversion| display| dlattach) /?$ /index.php?pretty%3Baction= $1 last;
rewrite ^/( dumpdb| editpoll| editpoll2| featuresettings| featuresettings2| findmember| help| helpadmin) /?$ ./index.php?pretty%3Baction= $1 last;
rewrite ^/( im| jsoption| jsmodify| lock| lockVoting| login| login2| logout ) /?$ ./index.php?pretty%3Baction= $1 last;
rewrite ^/( maintain| manageattachments| manageboards| managecalendar| managesearch| markasread| membergroups| mergetopics) /?$ ./index.php?pretty%3Baction= $1 last;
rewrite ^/( mlist| modifycat| modifykarma| modlog| movetopic| movetopic2| news| notify) /?$ ./index.php?pretty%3Baction= $1 last;
rewrite ^/( notifyboard| optimizetables| packageget| packages| permissions| pgdownload| pm| post) /?$ ./index.php?pretty%3Baction= $1 last;
rewrite ^/( post2| postsettings| printpage| profile| profile2| quotefast| quickmod| quickmod2) /?$ ./index.php?pretty%3Baction= $1 last;
rewrite ^/( recent| regcenter| register| register2| reminder| removetopic2| removeoldtopics2| removepoll) /?$ ./index.php?pretty%3Baction= $1 last;
rewrite ^/( repairboards| reporttm| reports| requestmembers| search| search2| sendtopic| serversettings) /?$ ./index.php?pretty%3Baction= $1 last;
rewrite ^/( serversettings2| smileys| smstats| spellcheck| splittopics| stats| sticky| theme) /?$ ./index.php?pretty%3Baction= $1 last;
rewrite ^/( trackip| about:mozilla| about:unknown| unread| unreadreplies| viewErrorLog| viewmembers| viewprofile) /?$ ./index.php?pretty%3Baction= $1 last;
rewrite ^/( verificationcode| vote| viewquery| who| \. xml) /?$ ./index.php?pretty%3Baction= $1 last;
# Rules for: boards
rewrite ^/([ -_!~*'()$a-zA-Z0-9]+)/[0-9]?/?$ /index.php?pretty%3Bboard=$1.0 last;
rewrite ^/([-_!~*' () $a -zA-Z0-9] +) /([ 0-9] *) /[ 0-9] ?/?$ /index.php?pretty%3Bboard= $1 .$2 last;
# Rules for: topics
rewrite ^/([ -_!~*'()$a-zA-Z0-9]+)/([-_!~*' () $a -zA-Z0-9] +) /[ 0-9] ?/?$ /index.php?pretty%3Bboard= $1 %3Btopic= $2 .0 last;
rewrite ^/([ -_!~*'()$a-zA-Z0-9]+)/([-_!~*' () $a -zA-Z0-9] +) /([ 0-9] *| msg[ 0-9] *| new) /[ 0-9] ?/?$ /index.php?pretty%3Bboard= $2 %3Btopic= $2 .$3 last;
# And the sitemap
rewrite ^sitemap.xml$ /index.php?action= sitemap%3Bxml last;
}
location ~ \. php$ {
fastcgi_pass 127.0.0.1:1234;
include /etc/nginx/fastcgi_params;
}
} server {
listen 80;
server_name forum.example.com *.forum.example.com;
error_log /var/log/nginx/forum.example.com.log warn;
root /var/www/forum.example.com/;
location / {
index index.php;
# Rules for: actions
rewrite ^/( activate| admin| announce| ban| boardrecount| buddy| calendar| cleanperms) /?$ /index.php?pretty%3Baction= $1 last;
rewrite ^/( collapse| convertentities| convertutf8| coppa| deletemsg| detailedversion| display| dlattach) /?$ /index.php?pretty%3Baction= $1 last;
rewrite ^/( dumpdb| editpoll| editpoll2| featuresettings| featuresettings2| findmember| help| helpadmin) /?$ ./index.php?pretty%3Baction= $1 last;
rewrite ^/( im| jsoption| jsmodify| lock| lockVoting| login| login2| logout ) /?$ ./index.php?pretty%3Baction= $1 last;
rewrite ^/( maintain| manageattachments| manageboards| managecalendar| managesearch| markasread| membergroups| mergetopics) /?$ ./index.php?pretty%3Baction= $1 last;
rewrite ^/( mlist| modifycat| modifykarma| modlog| movetopic| movetopic2| news| notify) /?$ ./index.php?pretty%3Baction= $1 last;
rewrite ^/( notifyboard| optimizetables| packageget| packages| permissions| pgdownload| pm| post) /?$ ./index.php?pretty%3Baction= $1 last;
rewrite ^/( post2| postsettings| printpage| profile| profile2| quotefast| quickmod| quickmod2) /?$ ./index.php?pretty%3Baction= $1 last;
rewrite ^/( recent| regcenter| register| register2| reminder| removetopic2| removeoldtopics2| removepoll) /?$ ./index.php?pretty%3Baction= $1 last;
rewrite ^/( repairboards| reporttm| reports| requestmembers| search| search2| sendtopic| serversettings) /?$ ./index.php?pretty%3Baction= $1 last;
rewrite ^/( serversettings2| smileys| smstats| spellcheck| splittopics| stats| sticky| theme) /?$ ./index.php?pretty%3Baction= $1 last;
rewrite ^/( trackip| about:mozilla| about:unknown| unread| unreadreplies| viewErrorLog| viewmembers| viewprofile) /?$ ./index.php?pretty%3Baction= $1 last;
rewrite ^/( verificationcode| vote| viewquery| who| \. xml) /?$ ./index.php?pretty%3Baction= $1 last;
# Rules for: boards
rewrite ^/([ -_!~*'()$a-zA-Z0-9]+)/[0-9]?/?$ /index.php?pretty%3Bboard=$1.0 last;
rewrite ^/([-_!~*' () $a -zA-Z0-9] +) /([ 0-9] *) /[ 0-9] ?/?$ /index.php?pretty%3Bboard= $1 .$2 last;
# Rules for: topics
rewrite ^/([ -_!~*'()$a-zA-Z0-9]+)/([-_!~*' () $a -zA-Z0-9] +) /[ 0-9] ?/?$ /index.php?pretty%3Bboard= $1 %3Btopic= $2 .0 last;
rewrite ^/([ -_!~*'()$a-zA-Z0-9]+)/([-_!~*' () $a -zA-Z0-9] +) /([ 0-9] *| msg[ 0-9] *| new) /[ 0-9] ?/?$ /index.php?pretty%3Bboard= $2 %3Btopic= $2 .$3 last;
# And the sitemap
rewrite ^sitemap.xml$ /index.php?action= sitemap%3Bxml last;
}
location ~ \. php$ {
fastcgi_pass 127.0.0.1:1234;
include /etc/nginx/fastcgi_params;
}
}