【问题标题】:Rewrite Rule in web.config in webapp hosted on Azure在 Azure 上托管的 webapp 中重写 web.config 中的规则
【发布时间】:2017-02-07 14:01:02
【问题描述】:

我正在尝试将请求 https://www.mywebsite.com/product/Apple/Green(不是真实链接)重定向到 https://www.mywebsite.com/product.php?prod=Apple&type=green(不是真实链接)

我在 web.config 文件中添加了以下规则,但它似乎不起作用

 <rule name="rwrite">
 <match url="^product/([A-Za-z0-9]+)/([A-Za-z0-9-]+)/?$" />
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
    <action type="Rewrite" url=“product.php?prod={R:1}&amp;type={R:2}" appendQueryString="true" /></rule>

我在 URL Writer 中测试了这段代码,它给了我正确的输出。但是,如果我上传此配置文件,它会加载 product.php 文件,但无法加载 html 部分中包含的其他 JS 文件和 css 文件。

【问题讨论】:

  • 能否使用 Chrome DevTools 跟踪这些 JS 文件和 CSS 文件的链接的网络活动并与我们分享 HTTP 响应状态?
  • 这是一个非常好的指针。 css 和 js 文件的 URL 是 mywebsite.com/product/apple/<path 到 CSS 或 js 文件>。你知道它为什么将产品/苹果附加到路径吗?

标签: php web-config azure-web-app-service


【解决方案1】:

这不是 URL 重写问题。我的猜测是您正在使用相对路径在 HTML 部分中加载 JS 文件和 CSS 文件。也许看起来像这样:

<head>
    <script src="index.js"></script>
</head>

这与浏览器地址栏中的 URL 有关。为防止这种情况发生,您需要在文件路径的开头添加/(相对于域的根文件夹):

<script src="/index.js"></script>

或对这些静态文件使用完整路径:

<script src="http://mywebsite.com/index.js"></script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-11
    • 1970-01-01
    相关资源
    最近更新 更多