首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将.htaccess转换为web.config时追加的查询字符串

将.htaccess转换为web.config时追加的查询字符串
EN

Stack Overflow用户
提问于 2012-06-13 22:58:31
回答 1查看 490关注 0票数 1

我正在尝试将一些简单的.htaccess重写转换成xml;大多数重写都很好,但是涉及查询字符串的重写遇到了特别的问题。

下面是.htaccess规则:

代码语言:javascript
复制
RewriteRule ^table/([a-zA-Z0-9\-_]+)/delete/([^/\.]+)$ table-index.php?mode=delete&type=$1&id=$2 [QSA,L]

下面是我是如何翻译的:

代码语言:javascript
复制
<rule name="delete">
  <match url="^table/([a-zA-Z0-9\-_]+)/delete/([^/\.]+)$" ignoreCase="true" />
  <action type="Rewrite" url="table-index.php?mode=delete&amp;type={R:1}&amp;id={R:2}" appendQueryString="true" />
</rule>

从本质上讲,我对此所做的与我对所有其他(有效)规则所做的是相同的,但这一条不是在玩球。惟一的区别是,该规则在.htaccess中有一条[QSA]指令,我将其转换为appendQueryString="true"

该规则并没有破坏IIS,只是它也不起作用--应该显示为:

代码语言:javascript
复制
http://my.site/admin/table/mailing-list/delete/1?confirm=true

显示为

代码语言:javascript
复制
http://my.site/admin/table-index.php?confirm=true

它丢失了相当多的重要信息,并导致本应发生的事情没有发生……当URL中没有?confirm=true查询字符串时,同样的规则也可以正常工作。

有人能帮上忙吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-05 10:01:06

我再看了一遍,找到了我自己的解决方案。重写规则没有错,相反,我依赖于我的一个链接$_ server‘’REDIRECT_URL‘中的apache服务器变量,而IIS没有提供它,相反,$_SERVER’‘REQUEST_URI’为我修复了它。

这不会产生任何错误,因为我已经预料到一些服务器可能不会给出变量,并回退到另一个服务器--但在我更改系统以使用导致问题的部分重写的URL之前,这些代码就已经写好了……!

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

https://stackoverflow.com/questions/11017701

复制
相关文章

相似问题

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