将 Apache htaccess 重写条件转换为 nginx

发布于 2025-01-01 16:38:31 字数 232 浏览 3 评论 0原文

我正在尝试将此 Apache Rewrite 规则移植到 nginx Web 服务器上。

RewriteBase /srv/www/htdocs
RewriteCond %{REQUEST_URI} ^/(files.*)$
RewriteRule ^(.*)$ %1 [L]

我不知道如何在 nginx.conf 中解决这个问题。 有人可以帮忙吗?

谢谢,帕特里斯

I am trying to port this Apache Rewrite rule to be used on a nginx Webserver.

RewriteBase /srv/www/htdocs
RewriteCond %{REQUEST_URI} ^/(files.*)$
RewriteRule ^(.*)$ %1 [L]

I don't know how to resolve this in nginx.conf.
Can anybody help please?

Thanks, Patrice

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

七秒鱼° 2025-01-08 16:38:31

试试这个:

if ($uri ~ "^/(files.*)$"){
    set $rule_0 1$rule_0;
    set $bref_1 $1;
}
if ($rule_0 = "1"){
    rewrite ^/(.*)$ /$bref_1 last;
}

来源:http://www.anilcetin.com/convert-apache -htaccess-to-nginx/

Try this:

if ($uri ~ "^/(files.*)$"){
    set $rule_0 1$rule_0;
    set $bref_1 $1;
}
if ($rule_0 = "1"){
    rewrite ^/(.*)$ /$bref_1 last;
}

Source: http://www.anilcetin.com/convert-apache-htaccess-to-nginx/

浮华 2025-01-08 16:38:31

它可能更简单:

if ( $uri ~ "^/(files.*)$") {
     rewrite ^/(.*)$ /$1 last;
}

It could be more simple:

if ( $uri ~ "^/(files.*)$") {
     rewrite ^/(.*)$ /$1 last;
}
缺⑴份安定 2025-01-08 16:38:31

感谢您的快速解答!最后,我解决了这个问题,类似于谢尔盖的建议,但嵌套了一个条件。

location / {
    root   /srv/www/htdocs;

    # all under "/files/" breaks further processing
    location ~ ^/files(.*)$ {
        break;
    }

    # rewrite rules for all paths not under "/files/"
    if (!-e $request_filename) {
        rewrite ^/([^/\.]+)((\/?)(.*?))$ /process.php?id=$1&path=$2 last;
    }

}

Thanks for your quick answers! Finally, i solved this problem similar to Sergeis suggestion, but nested with a condition.

location / {
    root   /srv/www/htdocs;

    # all under "/files/" breaks further processing
    location ~ ^/files(.*)$ {
        break;
    }

    # rewrite rules for all paths not under "/files/"
    if (!-e $request_filename) {
        rewrite ^/([^/\.]+)((\/?)(.*?))$ /process.php?id=$1&path=$2 last;
    }

}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文