问答

如何用Nginx的rewrite语法改写apache

作者:admin 2021-07-14 我要评论

以下是apache的形式,想换成nginx的rewite,请教各位大佬帮助,谢谢 RewriteEngine onRewriteCond %{http_host} ^a.com [NC]RewriteRule ^(.*)$ http://www.a.com$...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

以下是apache的形式,想换成nginx的rewite,请教各位大佬帮助,谢谢

RewriteEngine on
RewriteCond %{http_host} ^a.com [NC]
RewriteRule ^(.*)$ http://www.a.com$1 [R=301,L]

RewriteRule ^/track/(.*)$ /b/b/r.php?param=$1 [L]

RewriteCond  %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
RewriteRule ^/((?!\.).)*(?<!\/)$      $0/ [R=301,L]

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI}   !^/(public|admin)/{0,1}
RewriteRule ^/  /index.php [L]
###

大佬来帮你了

location ~ ^/(public|admin)/\{0,1} {
  try_files $uri $uri/ /index.php?$query_string;
}

location / {
  if ($http_host ~* "^a.com"){
    rewrite ^(.*)$ http://www.a.com$1 redirect;
  }
  rewrite ^/((?!.).)*(?<!/)$ /$arg_0/ redirect;
}

location /track {
  rewrite ^/track/(.*)$ /b/b/r.php?param=$1 break;
}
###

@Albert
多谢回答,但好像不能用

location ~ ^/(public|admin)/{0,1}" {
try_files $uri $uri/ /index.php?$query_string;
}
这个双引号是什么意思?

###
location ~ ^/(public|admin)/\{0,1} {
  try_files $uri $uri/ /index.php?$query_string;
}

location / {
  if ($http_host ~* "^a.com"){
    rewrite ^(.*)$ http://www.a.com$1 redirect;
  }
  rewrite ^/((?!.).)*(?<!/)$ /$arg_0/ redirect;
}

location /track {
  rewrite ^/track/(.*)$ /b/b/r.php?param=$1 break;
}
###

htaccess to nginx converter

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 如何用Nginx的rewrite语法改写apache

    如何用Nginx的rewrite语法改写apache

  • 请问这两个对象name属性值为什么会相等

    请问这两个对象name属性值为什么会相等

  • Springboot打成jar包发布后,某个网络

    Springboot打成jar包发布后,某个网络

  • 生产环境该不该安装宝塔?

    生产环境该不该安装宝塔?

腾讯云代理商
海外云服务器