我正在运行Nginx 1.5.6,我使用Simple Machines Forum软件。 大多数重写规则似乎都正常工作,除了RSS源。
在我的Nginxconfiguration中,我有下面这行应该处理包含“.xml”的URL:
rewrite ^/forum/(\.xml|xmlhttp)/?$ "/forum/index.php?pretty;action=$1" last;
上述规则为主论坛生成以下URL,该论坛返回403错误: http ://www.mydomain.com/forum/.xml/?type= rss
我想重写规则来产生这种types的URL,它返回代码200(一个真实的网页): http : //www.mydomain.com/forum/? type=rss;action =.xml
这里是关于论坛重写整个块: http : //pastebin.com/raw.php? i= tZkAibW3
我真的很感谢一些帮助来创build一个重写规则来做到这一点。 谢谢。
你不能在你的rewrite子句中包含查询string(这将需要一张map或者if )。 怎么样下面的东西?
rewrite ^/forum/rss\.xml$ /forum/index.php?pretty;action=.xml last;
您的用户可以通过http://mydomain.com/forum/rss.xml直接访问您的Feed
那么,简单机器是一个可怕的混乱,但根本没有一个好的论坛软件(总是在考虑为这个任务开始我自己的开源项目)。
请尝试以下( if使用,更正你的邪恶):
server { location / { location ~ /forum/ { location ~ /forum/(\.xml|xmlhttp) { if ($args ~ type=rss) { rewrite ^/(.*)$ /forum/index.php?pretty;action=$1 last; try_files $uri @forum; } } try_files $uri @forum; } } location @forum { # Rules for: profiles rewrite ^/forum/profile/([^/]+)/?$ "/forum/index.php?pretty;action=profile;user=$1" last; # Rules for: actions rewrite ^/forum/(activate|admin|ads|announce|attachapprove|ban|boardrecount|buddy|calendar|clock)/?$ "/forum/index.php?pretty;action=$1" last; rewrite ^/forum/(collapse|convertentities|coppa|credits|deletemsg|detailedversion|display|dlattach|editpoll|editpoll2)/?$ "/forum/index.php?pretty;action=$1" last; rewrite ^/forum/(emailuser|featuresettings|findmember|groups|help|helpadmin|im|jseditor|jsmodify)/?$ "/forum/index.php?pretty;action=$1" last; rewrite ^/forum/(jsoption|lock|lockvoting|login|login2|logout|manageboards|managecalendar|managesearch|manageattachments|maintain|markasread|mascot)/?$ "/forum/index.php?pretty;action=$1" last; rewrite ^/forum/(membergroups|mergetopics|mlist|moderate|modifycat|modifykarma|movetopic|movetopic2|news|notify)/?$ "/forum/index.php?pretty;action=$1" last; rewrite ^/forum/(notifyboard|optimizetables|openidreturn|packages|permissions|pm|post|postsettings|post2|printpage|profile|quotefast)/?$ "/forum/index.php?pretty;action=$1" last; rewrite ^/forum/(quickmod|quickmod2|recent|regcenter|register|register2|reminder|removepoll|removetopic2)/?$ "/forum/index.php?pretty;action=$1" last; rewrite ^/forum/(repairboards|reporttm|requestmembers|restoretopic|reports|search|search2|sendtopic|serversettings|smileys|smstats|suggest)/?$ "/forum/index.php?pretty;action=$1" last; rewrite ^/forum/(spellcheck|splittopics|stats|sticky|theme|trackip|about:mozilla|about:unknown)/?$ "/forum/index.php?pretty;action=$1" last; rewrite ^/forum/(unread|unreadreplies|verificationcode|viewErrorLog|viewmembers|viewprofile|vote|viewquery|viewsmfile|who)/?$ "/forum/index.php?pretty;action=$1" last; # Rules for: boards rewrite ^/forum/([-_!~*'()$a-zA-Z0-9]+)/?$ "/forum/index.php?pretty;board=$1.0" last; rewrite ^/forum/([-_!~*'()$a-zA-Z0-9]+)/([0-9]*)/?$ "/forum/index.php?pretty;board=$1.$2" last; # Rules for: topics rewrite ^/forum/([-_!~*'()$a-zA-Z0-9]+)/([-_!~*'()$a-zA-Z0-9]+)/?$ "/forum/index.php?pretty;board=$1;topic=$2.0" last; rewrite ^/forum/([-_!~*'()$a-zA-Z0-9]+)/([-_!~*'()$a-zA-Z0-9]+)/([0-9]*|msg[0-9]*|new)/?$ "/forum/index.php?pretty;board=$1;topic=$2.$3" last; rewrite ^/(.*)$ /index.php?params=$1 last; } }