url-rewriting 相关问题

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

使用 OpenBSD 的 httpd.conf 文件从 URL 中删除 .html 和 .php 扩展名

这可能更多是一个正则表达式问题,或者可能是一个httpd.conf,但我认为我已经非常接近了。只是需要一点帮助。让我说,我总是在正则表达式上挣扎,尽管有这样的网站:https://

回答 1 投票 0

正则表达式负前瞻为真,然后忽略正则表达式的其余部分

我正在使用以下 IIS 重写规则来阻止尽可能多的机器人。 我正在使用以下 IIS 重写规则来阻止尽可能多的机器人。 <rule name="BotBlock" stopProcessing="true"> <match url=".*" /> <conditions> <add input="{HTTP_USER_AGENT}" pattern="^$|\b(?!.*googlebot.*\b)\w*(?:bot|crawl|spider)\w*" /> </conditions> <action type="CustomResponse" statusCode="403" statusReason="Forbidden" statusDescription="Forbidden" /> </rule> 目标是阻止所有带有部件机器人、爬虫或蜘蛛的用户代理,但允许 Google 机器人。这在一定程度上有效。但问题是,即使在字符串中找到“googlebot”,正则表达式的第二部分也会被触发。 下面一些例子的含义: Googlebot/2.1 (+http://www.google.com) 工作正常,googlebot 中的“bot”部分被忽略并且请求被允许。 Googlebot/2.1 (+http://www.google.com/bot.html) 不起作用,仍然在字符串中的第二个“机器人”上触发,并且请求被阻止 KHTML, like Gecko; compatible; bingbot 工作正常,在 bingbot 中的机器人上触发并且请求被阻止 那么有人可以帮我更改 rexeg 以便允许带有 Googlebot/2.1 (+http://www.google.com/bot.html) 的字符串吗? 我不熟悉 IIS 的确切正则表达式风格,但是如果您可以启用不区分大小写的正则表达式,则此 应该 可以工作: ^(?!.*googlebot)(?=.*(?:bot|crawl|spider)).* 说明: ^ - 起始线锚点 (?!.*googlebot) - 在我之前,“googlebot”这个词不存在 (?=.*(?:bot|crawl|spider)) - 在我面前,存在“机器人”、“爬行”或“蜘蛛”这个词 .* - 捕获整行(在 IIS 规则的上下文中可能没有必要) 负前瞻和正前瞻的组合会在正则表达式中产生隐式 and 条件;两者都必须为 true 才能使正则表达式注册匹配。 https://regex101.com/r/MFKKyU/1

回答 1 投票 0

NextJs 重写,第二次重写不起作用

我正在尝试进行简单的重写。因此,所有 /app 流量都会重写到 /frontend 文件夹,所有 /backend 流量都会重写到 /backend 文件夹。 如果我启动:localhost:3000/app/...,则会收到错误 404

回答 2 投票 0

以这种方式列出帖子“domain.com/taxonomy/category

我正在尝试修改wordpress(版本3.3)以列出具有一种类别和一种分类法的帖子。 我有一个称为“位置”的分类法。如果我执行 example.org/location/canada,它就会起作用。现在我...

回答 2 投票 0

RewriteEngine 每次都在 <IfModule mod_rewrite.c> 中开启?

我想知道当 RewriteEngine On 嵌入 IfModule mod_rewrite.c 时,我是否只能在 htaccess 中使用一次它,或者我必须每次都使用它,因为它是嵌入的? 请参阅下面的示例。

回答 2 投票 0

重写Azure API管理服务中所有API操作的URL

我有一个 Web api,其路径为: /api/v1/操作1 /api/v1/操作2 /api/v1/操作3 在我的Azure API管理服务中,我想要前面...

回答 1 投票 0

如何使用.htaccess文件重写url?

我设计了一个网站,我从数据库中获取数据,我想使用 .htaccess 文件动态创建一个用户友好的 URL。我的网址类型是这样的 https://example.com/lrc.php?ti=Down+Bad&am...

回答 1 投票 0

强制浏览器重新加载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

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