【问题标题】:Nginx rewriting, including other pages?Nginx重写,包括其他页面?
【发布时间】:2014-12-27 21:01:36
【问题描述】:

我在用 Nginx 重写时遇到了一个大问题。 确实,我的网站有多个 url 重写,我刚刚发现了一个问题。

url 重写样式是: 对于不带参数的url

        rewrite /booster-fin.html /booster-fin.php last;

这个,对于带参数的url

    rewrite /affichage-site-([0-9]+).html /affichage.php?site=$1 last;

它工作得很好,但是我发现了一个问题 在我的网站上:

domain.xx/affichage-site-3.html 

工作

但是

    domain.xx/oezfopjezffeznefzoifo-http:/affichage-site-3.html 

也可以工作!!!!

我可以把任何东西放在 -http:/ 之前和 http:/ 之后我可以把它放在网站的任何现有页面上 所以:

domain.xx/nginxrewritproblem-http:/index.html 

工作(与 domain.xx/index.html 相同的页面)

是我的配置或 nginx 有问题吗?

感谢您的帮助

【问题讨论】:

    标签: php nginx url-rewriting


    【解决方案1】:

    在重写的开头加上^(可能在结尾加上$):

    rewrite ^/affichage-site-([0-9]+).html$ /affichage.php?site=$1 last;
    

    ^ 表示 URL 必须以接下来的内容开头,$ 表示它必须像这样结束。 http://regexone.com/lesson/10 了解更多信息。

    关于domain.xx/nginxrewritproblem-http:/index.html 的问题:看起来你的 nginx.conf 中有一些错误的重写,默认情况下 nginx 不是这样的。检查你所有的重写是否真的做了你想要的(而不是更多)。

    【讨论】:

    • Thxxxxxxxxxxxxxxxxxxxxx !问题是 ^ 和 $ 它工作得很好!
    猜你喜欢
    • 2011-03-20
    • 2017-02-04
    • 2010-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-12
    • 1970-01-01
    相关资源
    最近更新 更多