redirect - 将非 www 重定向到 www 以获取内部页面的 url
问题描述
我想重定向:
- domain.co.uk 到 www.domain.co.uk 和
- domain.co.uk/contact-us 到 www.domain.co.uk/contact-us。
我已经web.config
使用 ECMAScript 和通配符尝试了许多规则,但第一个已经完成,但第二个要么保持不变,要么重定向到 www.domain.co.uk 即主页。目前的一个例子如下:
<rule name="Redirect domain.com to www" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" />
<conditions>
<add input="{HTTP_HOST}" pattern="^domain.co.uk/*" />
</conditions>
<action type="Redirect" url="http://www.domain.co.uk/{C:1}/{R:0}" />
</rule>
解决方案
这将重定向到 www 版本,同时保留 HTTP 和 HTTPS 协议:
<rule name="ensurewww" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{CACHE_URL}" pattern="^(.+)://(?!www)(.*)" />
</conditions>
<action type="Redirect" url="{C:1}://www.{C:2}" redirectType="Permanent" />
</rule>
推荐阅读
- php - EasyAdmin3 / Symfony / Twig - 在 Twig 模板中带有路由名称和参数的 url 生成器
- java - 我如何将所有不同的警报框组合成一个警报框,一起显示所有结果?
- crash - 为什么我在尝试设置浮点数时会崩溃?
- php - JSONPath PHP 给出错误
- api-platform.com - 当有斜杠时防止重定向
- android - 堆栈导航器在发布 apk 中不起作用
- python - Pyinstaller 执行失败
- python - 如何在 python 中使用 Selenium 查找所有元素和文本
- php - 未定义属性:Remember\LaravelPhpSpreadsheet\LaravelPhpSpreadsheet::$spreadsheet 在一个函数中创建 2 个工作表时
- c++ - 多态函数的 C++ 映射