当前位置: 首页 > 知识库问答 >
问题:

nginx - Nginx与IIS重写规则对照转换?

商飞尘
2024-04-28
location / {          rewrite ^/(.*)$ /public/index.php?_url=/$1;         }location /assets/ {        root /srv/www/Dilling/public; }location ~* ^/(css|img|js|flv|swf|download)/(.+)$ {         root /srv/www/Dilling/public;} location ~ /\.ht {         deny all;}

请问上面nginx规则如何转成iis重写规则

共有1个答案

娄丁雨
2024-04-28

在IIS中,你可以使用web.config文件来配置URL重写规则,这与Nginx的serverlocation块有些不同。下面是将你提供的Nginx规则转换为IIS重写规则的示例:

<?xml version="1.0" encoding="UTF-8"?><configuration>  <system.webServer>    <rewrite>      <rules>        <!-- Rule for redirecting all requests to /public/index.php -->        <rule name="Rewrite to index.php" stopProcessing="true">          <match url="^(.*)$" ignoreCase="false" />          <conditions logicalGrouping="MatchAll">            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />          </conditions>          <action type="Rewrite" url="public/index.php?_url=/{R:1}" appendQueryString="true" />        </rule>        <!-- Rule for serving static assets from /assets/ -->        <rule name="Serve assets from /assets/" stopProcessing="true">          <match url="^assets/(.*)$" ignoreCase="false" />          <action type="Rewrite" url="public/assets/{R:1}" appendQueryString="false" />        </rule>        <!-- Rule for serving static resources from specific directories -->        <rule name="Serve static resources" stopProcessing="true">          <match url="^(css|img|js|flv|swf|download)/(.*)$" ignoreCase="false" />          <action type="Rewrite" url="public/{R:1}/{R:2}" appendQueryString="false" />        </rule>        <!-- Rule for denying access to .htaccess files -->        <rule name="Deny access to .htaccess" stopProcessing="true">          <match url=".*\.ht" ignoreCase="false" />          <action type="CustomResponse" statusCode="403" statusReason="Forbidden: Access is denied." statusDescription="You do not have permission to view this directory or page using the credentials that you supplied." />        </rule>      </rules>    </rewrite>  </system.webServer></configuration>

这个web.config文件应该放在你IIS站点的根目录下。这里有几个要点需要注意:

  1. IIS的重写规则是基于正则表达式的,但是语法和Nginx有所不同。
  2. 在IIS中,{R:n}用于引用正则表达式中的捕获组,这与Nginx中的$1$2等类似。
  3. 在规则中使用了stopProcessing="true",这意味着如果找到匹配的规则,IIS将停止处理后续的规则。
  4. 对于静态资源的规则,appendQueryString="false"表示不将原始查询字符串附加到重写后的URL中。
  5. 对于禁止访问.htaccess文件的规则,使用了一个自定义响应,返回403 Forbidden状态码。

请注意,这些规则可能需要根据你的具体需求进行调整。在部署之前,请确保在测试环境中进行充分的测试。

 类似资料:
  • 本文向大家介绍详解常用的nginx rewrite重写规则,包括了详解常用的nginx rewrite重写规则的使用技巧和注意事项,需要的朋友参考一下 本文提供一些常用的rewrite重写规则,用来美化网页的链接。规则里面的$1$2你不知道是怎么来的话,只要记住,第一个()里面的是$1,第二个()里面的是$2. 请求的URL是给人看的,重写后的URL是给电脑看的。 执行搜索 这个规则的目的是为了执

  • 本文向大家介绍详解Nginx location 匹配规则,包括了详解Nginx location 匹配规则的使用技巧和注意事项,需要的朋友参考一下 语法规则 location [=|~|~*|^~] /uri/ { … } 模式 含义 location = /uri = 表示精确匹配,只有完全匹配上才能生效 location ^~ /uri ^~ 开头对URL路径进行前缀匹配,并且在正则之前。 l

  • dml2select Description:将数据库更新请求转换为只读查询请求,便于执行EXPLAIN Original: DELETE FROM film WHERE length > 100 Suggest: select * from film where length > 100 star2columns Description:为SELECT *补全表的列信息 Original:

  • 前面两个小节我们讲述了 Nginx 的一些优点,这一节我们来与 Web 服务器领域的另一个霸主 Apache 做一下比较。如果说 Nginx 是新生代霸主的话,那么 Apache 就是当之无愧的老霸主。至少在前几年 Nginx 在 Web 服务器领域只是占据老二的位置。 但是随着互联网的发展,越来越多的人和企业开始转向 Nginx 的怀抱,从而使得 Nginx 的市场占有率逐年上升,直到牢牢占据第

  • 本文向大家介绍nginx 重新启动NGINX,包括了nginx 重新启动NGINX的使用技巧和注意事项,需要的朋友参考一下 示例 以root用户身份: Ubuntu的例子            

  • 本文向大家介绍简介Nginx中的location匹配规则,包括了简介Nginx中的location匹配规则的使用技巧和注意事项,需要的朋友参考一下 location匹配命令 ~      #波浪线表示执行一个正则匹配,区分大小写 ~*    #表示执行一个正则匹配,不区分大小写 ^~    #^~表示普通字符匹配,如果该选项匹配,只匹配该选项,不匹配别的选项,一般用来匹配目录 =      #进行