url-rewriting 相关问题

URL重写引擎是修改Web URL外观(URL重写)的软件。重写的URL用于提供更短和更相关的网页链接,将用户从过时的URL路由到替换,或简化URL的格式以便人类可读。该技术在用于生成网页的文件和呈现给世界的URL之间增加了一定程度的分离。

强制浏览器重新加载Javascript文件

我正在尝试在使用razor的ASP.NET MVC3 Web应用程序中实现以下目标。 1)在我的 Index.cshtml 文件中,我有以下参考。 </script&...</desc> <question vote="1"> <p>我正在尝试在使用 razor 的 ASP.NET MVC3 Web 应用程序中实现以下目标。</p> <p>1)在我的<pre><code>Index.cshtml</code></pre>文件中,我有以下参考。</p> <pre><code>&lt;script src=&#34;/MySite/Scripts/Main.js&#34;&gt;&lt;/script&gt; </code></pre> <p>2) 我第一次加载我的主页,并发出一个 http 请求来获取此文件,该文件返回 200。</p> <p>3)然后,我对 Main.js 进行了一些更改并保存了它。</p> <p>4) 现在我只需转到地址栏并输入主页 URL 并按 Enter 键即可重新加载主页(请注意,我没有刷新页面)。此时,我希望浏览器通过再次发出 http 请求来获取更新后的 <pre><code>Main.js</code></pre> 文件。 </p> <p>我怎样才能实现这个目标?我不想使用 System.Web.Optimization 捆绑方式。我知道我们可以通过每次文件更改时更改 URL(附加版本或一些随机数)来实现此目的。 </p> <p>但这里的挑战是 URL 被硬编码在我的 <pre><code>Index.cshtml</code></pre> 文件中。每次 Main.js 文件发生更改时,如何更改 Index.cshtml 文件中的硬编码 URL?</p> <p>谢谢, 沙迪亚。</p> </question> <answer tick="false" vote="1"> <p>我试图实现的是,一旦我的应用程序 javascript 文件(已缓存在浏览器中)在物理位置被修改,浏览器缓存就会失效。我知道这是不可能实现的,因为目前没有浏览器提供这种支持。要解决这个问题,只有两种方法: 1)使用MVC捆绑 2)每次修改文件时,只需通过查询字符串将版本或任意随机数附加到 URL 即可修改 URL。此方法在以下 URL 中进行了解释 - <a href="https://stackoverflow.com/questions/2185872/force-browsers-to-get-latest-js-and-css-files-in-asp-net-application">强制浏览器在 asp.net 应用程序中获取最新的 js 和 css 文件</a> 但第二种方法的缺点是,如果有任何外部应用程序引用您应用程序的 javascript 文件,则在浏览器中不刷新外部应用程序的情况下,浏览器缓存仍然不会失效。</p> </answer> <answer tick="false" vote="1"> <p>只需添加时间戳作为查询字符串参数:</p> <pre><code>var timestamp = System.DateTime.Now.ToString(&#34;yyyyMMddHHmmssfff&#34;); &lt;script src=&#34;/MySite/Scripts/Main.js?TimeStamp=@timestamp&#34;&gt;&lt;/script&gt; </code></pre> <p>注意:仅在更新/修改文件时更新<strong>TimeStamp</strong>参数值。</p> </answer> <answer tick="false" vote="0"> <p>如果不使用捆绑(内部处理版本)或手动附加版本,这是不可能的。如果需要,您也可以创建单个文件包。</p> </answer> <answer tick="false" vote="0"> <p>听起来你正在寻找<em>cache-busting</em>,当内容发生变化时,你的JS文件会自动为用户刷新。</p> <p>.NET 内置的 <pre><code>asp-append-version</code></pre> 属性可用于此目的。只需更改此行:</p> <pre><code>&lt;script src=&#34;/MySite/Scripts/Main.js&#34;&gt;&lt;/script&gt; </code></pre> <p>对此:</p> <pre><code>&lt;script src=&#34;/MySite/Scripts/Main.js&#34; asp-append-version=&#34;true&#34;&gt;&lt;/script&gt; </code></pre> <p>这也可以添加到 <pre><code>&lt;link&gt;</code></pre> 标签中,以启用 CSS 文件的缓存清除。</p> <p>要确认其正常工作,请重新加载页面并查看页面源代码。您应该会看到 JS 文件附加了一个版本号。当JS文件的内容发生变化时,这个数字会自动更新。否则它不会被更新,以保留浏览器的正常缓存行为。</p> </answer> </body></html>

回答 0 投票 0

Wordpress 允许页面永久链接为日期(年份),而无需在末尾附加 -2

创建一个页面作为 2020 作为标题时,创建的永久链接变为 2020-2,但希望它是 2020,例如 https://www.example.com/2020/ - 加载具有该名称的页面,而不是档案...

回答 2 投票 0

为什么 IIS 在将 URL 重写为 localhost 时返回 502 错误?

我在 IIS 上的 Url Rewrite 模块 2 有问题,我配置了以下重写: 我有两个本地服务正在侦听端口 51232 和 51233,这些服务执行相同的过程...

回答 1 投票 0

Wordpress 重写页面参数

我有下载页面: https://example.com/preview-and-download/?key=123456789 我希望用户浏览器为:https://example.com/preview-and-download/123456789 我将 Wordpress 与 OpenLitespeed 一起使用 我...

回答 1 投票 0

如何使用 nginx 和 php 进行没有 .php 扩展名的路由

在开始之前,我知道 StackOverflow 中有很多关于此问题的解决方案,但它们不适用于我的情况。 我使用 PHP 设置了一个运行 Nginx 实例的 docker 容器。当我进入...

回答 1 投票 0

将子域名从域名托管商重定向到具有其他提供商路径的网络空间

我有一个提供商负责管理我的域名(提供商 A),另一家提供商托管我的专用服务器(提供商 B)。 我想在提供商 (A) 处使用子域 me.comp.com,该子域应...

回答 1 投票 0

WordPress:将 HTTPS 重写或重定向为 HTTP

我们有一个 WordPress + WooCommerce 网站,但我们不接受在线付款,而且我们安装的 SSL 导致某些插件出现问题。所以,大约一周前我们卸载了 SSL

回答 1 投票 0

NGINX / Lua - 动态根文件夹/URI 重写

我正在使用 Lua 运行 NGINX 服务器(通过 OpenResty)。 我想实现一个非常简单的事情: 如果用户从文件夹startpage访问/serve 如果用户访问任何其他路径,例如......

回答 1 投票 0

Nginx 配置无法从 url 中删除 .php

我的网站的 Nginx 默认配置遇到问题。我的 PHP 网站在 Linux azure 机器上运行,该机器使用 nginx。这是目前我的配置: 服务器 { #proxy_cache缓存; ...

回答 1 投票 0

如何从 .htaccess 的 URL 中删除包含“?”的子字符串

消除 URL 中的参数。 在 Apache 服务器上使用“..htaccess”,我需要将“mydomain.org/FramesVar.html?mypath.html”之类的 URL 转换为“mydomain.org/mypath.html&qu...

回答 1 投票 0

Wordpress 围绕查询构建功能

我需要一些有关 WordPress 重写规则和查询的帮助。 我想要的是如果用户访问此链接 https://www.domain.com/catalog 我首先要做的是制定重写规则,这样用户就不会看到...

回答 1 投票 0

在Confluence中更改页面标题而不更改URL

Confluence中的页面URL是使用页面标题生成的。 有没有一种方法可以更改已建立页面的标题而不更改其原始 URL? 我尝试使用 s 中的链接...

回答 1 投票 0

IIS 重写模块排除机器人但允许 GoogleBot

我正在使用以下 IIS 重写规则来阻止尽可能多的机器人。 我正在使用以下 IIS 重写规则来阻止尽可能多的机器人。 <rule name="BotBlock" stopProcessing="true"> <match url=".*" /> <conditions> <add input="{HTTP_USER_AGENT}" pattern="^$|bot|crawl|spider" /> </conditions> <action type="CustomResponse" statusCode="403" statusReason="Forbidden" statusDescription="Forbidden" /> </rule> 此规则将阻止所有带有空用户代理字符串或包含 bot、crawl 和 spider 的用户代理字符串的请求。这很好用,但它也会阻止 googlebot,这是我不想要的。 那么我如何从上述模式中排除 googlebot 字符串,以便它确实到达网站。 我已经尝试过了 ^$|!googlebot|bot|crawl|spider ^$|(?!googlebot)|bot|crawl|spider ^(?!googlebot)$|bot|crawl|spider ^$|(!googlebot)|bot|crawl|spider 但是他们要么阻止所有用户代理,要么仍然不允许 googlebot。谁有解决方案并且了解一些正则表达式? 尝试这个正则表达式^$|(?!.*googlebot)(bot|crawl|spider)

回答 1 投票 0

在IIS服务器上使用react-router-dom托管React应用程序时出现问题

我已将 React 应用程序托管在 wwwroot/{myFolder} 内的 IIS 服务器上。我目前面临以下错误:意外的应用程序错误!(404 Not Found) 我已经在 www 中有一个 web.config 文件...

回答 1 投票 0

重定向到另一个网站,但在浏览器中显示原始 URL

我需要有关 URL 重写的问题的帮助。 目前,下面的重定向规则可以正常工作。 我需要有关 URL 重写问题的帮助。 目前下面的重定向规则可以正常工作。 <rule name="test_redirect" stopProcessing="true"> <match url="^(.*)$" /> <conditions> <add input="{HTTP_HOST}" pattern="^name.domain.com$" /> <add input="{HTTPS_HOST}" pattern="^name.domain.com$" /> </conditions> <action type="Redirect" url="http://IP address/service" redirectType="Permanent" /> </rule> 现在我需要的是浏览器的地址栏仍然显示原始的url。 (例如:“http://name.domain.com”重定向到“http://IP 地址/服务”,但浏览器的地址栏仍然显示“http://name.domain.com”。) 因此,我进行了以下配置更改: <rule name="test_redirect" stopProcessing="true"> <match url="^(.*)$" /> <conditions> <add input="{HTTP_HOST}" pattern="^name.domain.com$" /> <add input="{HTTPS_HOST}" pattern="^name.domain.com$" /> </conditions> <action type="Rewrite" url="http://IP address/service" redirectType="Permanent" /> </rule> 但是没成功吗: 页面加载时出现错误。 原URL中添加了“/service”。 错误在哪里?是否缺少某些配置? 谁能帮我解决这个问题吗? 谢谢。 首先,我安装了 ARR 模块:(https://www.iis.net/downloads/microsoft/application-request-routing)。 安装完成后,我在IIS服务器级别打开,选择“服务器代理设置”,勾选“启用代理”。 我将“action type=”Redirect”更改为“action type=”Rewrite”。 Windows Server 2019 Datacenter 上的 IIS 版本为 10.0.17763.1。 iis服务器变量中,没有服务器变量{HTTPS_HOST}。 请从 <conditions> 中删除此内容,然后重试。 <add input="{HTTPS_HOST}" pattern="^name.domain.com$" />

回答 1 投票 0

基于Accept-Language的重定向

我需要尊重网络浏览器的语言首选项列表。支持的语言为英语和法语。例如:http_accept_language="jp-JP;fr;en-US;en" 重定向到名为 /Fr... 的目录

回答 2 投票 0

Azure Web 应用程序忽略 web.config URL 重写

我有一个天蓝色的网络应用程序。它被部署为一个针对 net8.0 的框架相关应用程序,并且运行时目标是可移植的。 我已经编写了一个 web.config ,它位于 wwwroot 目录中。 我正在努力...

回答 1 投票 0

如何使用 NGINX Ingress Controller 将 example.com 重定向到 example.com/login

{{- $root := . -}} api版本:networking.k8s.io/v1beta1 种类: 入口 元数据: 名称:{{包括“ingress.name”。 }} 命名空间:演示 注释: kubernetes.io/ingress.class:n...

回答 2 投票 0


IIS URL 使用条件在一条规则中重写 2 个不同的 URL,可能吗?

我有两种不同的重写规则。 我有两种不同的重写规则。 <rule name="Venue" stopProcessing="true"> <match url="Venue/([_0-9a-z-(-)-,-]+)/([_0-9a-z-(-)-,-]+)" /> <action type="Rewrite" url="Main.asp?Type=Venue&amp;VenueID={R:1}&amp;VName={R:2}" appendQueryString="true" /> </rule> <rule name="Venue" stopProcessing="true"> <match url="Venue/([_0-9a-z-(-)-,-]+)/([_0-9a-z-(-)-,-]+)/([_0-9a-z-(-)-,-]+)" /> <action type="Rewrite" url="Main.asp?Type=Venue&amp;VenueID={R:1}&amp;VName={R:2}&amp;ConcertID={R:3}" appendQueryString="true" /> </rule> 有没有办法使用 <conditions> 将两个规则合并为一个规则? 因此,当您访问任一 URL 时。 /Venue/37/The_Omni(您转到其页面。) /Venue/37/The_Omni/ConcertID/1(您转到其页面。) (或)我是否必须接受两条不同名称的规则? 字面上的正则表达式规则允许您编写, <rule name="Venue" stopProcessing="true"> <match url="Venue/([_0-9a-z-(-)-,-]+)/([_0-9a-z-(-)-,-]+)(?:/([_0-9a-z-(-)-,-]+))?" /> <action type="Rewrite" url="Main.asp?Type=Venue&amp;VenueID={R:1}&amp;VName={R:2}{R:3:+&amp;ConcertID={R:3}}" appendQueryString="true" /> </rule> 您可以尝试看看 IIS URL Rewrite 模块是否支持此类表达式。

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.