首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.htaccess的IIS RewriteBase

问.htaccess的IIS RewriteBase
EN

Stack Overflow用户
提问于 2020-03-09 14:05:37
回答 1查看 60关注 0票数 1

在IIS中,RewriteBase不起作用。因此,下面的.htaccess规则已转换为IIS配置。但在IIS中,它给出了400个错误请求错误。我需要更正什么?

Htaccess规则

代码语言:javascript
复制
RewriteRule api/(.*)$ api.php?request=$1 [QSA,NC,L]

IIS转换的规则

代码语言:javascript
复制
<rule name="Imported Rule 1" stopProcessing="true">
    <match url="api/(.*)$"/>
    <action type="Rewrite" url="api.php?request={R:1}" appendQueryString="true"/>
</rule> 
EN

回答 1

Stack Overflow用户

发布于 2020-03-12 19:07:11

假设您的RewriteBase指令设置如下:

代码语言:javascript
复制
RewriteBase /subdir

然后,您只需将此“前缀”附加到目标URL的开头(即.IIS指令中的RewriteRule替换或url属性值)。具体地说,它应该只作为相对替换字符串的前缀。

例如:

代码语言:javascript
复制
RewriteRule api/(.*)$ /subdir/api.php?request=$1 [QSA,NC,L]

换句话说:

代码语言:javascript
复制
<action type="Rewrite" url="/subdir/api.php?request={R:1}" appendQueryString="true"/>

如果设置了RewriteBase /,则只需使用一个斜杠作为前缀,例如。url="/api.php?request={R:1}"

这就是RewriteBase指令所做的全部工作。当在目录上下文中使用时,它为相对路径替换设置URL前缀。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60595421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档