使用 apache rewrite 重写动态 url

Rewriting dynamic url's using apache rewrite

我的 html 内容中有一个这样的锚标记 class="list-content" href="/abcd/test.html"。 这在我的 html 中的很多地方都有一些结果列表。 我需要通过附加前缀来附加“href”中的所有这些 URL。

例如:/abcd/test.html 应动态更改为 newprefix/abcd/test.html

如果我有另一个像 /xyz/some.html 那么这应该更改为 newprefix/xyz/some.html

我在互联网上探索了不同的解决方案,但没有找到适合我的问题的解决方案。

要实现外部重定向以将 /newprefix 添加到这些请求之前,您可以在根 .htaccess(或服务器配置)顶部附近执行类似以下操作。

例如:

RewriteEngine On

RewriteRule ^[^/]+/[^./]+\.html$ /newprefix/[=10=] [R=302,L]

以上将 /abcd/test.html/xyz/some.html 的请求分别重定向到 /newprefix/abcd/test.html/newprefix/xyz/some.html。匹配模式 /<something>/<file>.html.

的任何内容

[=18=] 是一个反向引用,它包含与 RewriteRule 模式 .

匹配的 URL-path

请注意,这不是“url-rewriting”,因为您在评论中声明您不想向用户“隐藏”URL 的 /newprefix 部分。因此,如果您打算使用 Apache / mod_rewrite(如标记),则外部重定向是唯一的解决方案。

旁白: 这对 SEO、您的用户或您的服务器来说不是特别好,因为用户每次单击您的一个链接时都会从外部重定向,可能会使请求数量翻倍攻击您的服务器并减慢您的用户。