使用 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、您的用户或您的服务器来说不是特别好,因为用户每次单击您的一个链接时都会从外部重定向,可能会使请求数量翻倍攻击您的服务器并减慢您的用户。
我的 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-rewriting”,因为您在评论中声明您不想向用户“隐藏”URL 的 /newprefix
部分。因此,如果您打算使用 Apache / mod_rewrite(如标记),则外部重定向是唯一的解决方案。
旁白: 这对 SEO、您的用户或您的服务器来说不是特别好,因为用户每次单击您的一个链接时都会从外部重定向,可能会使请求数量翻倍攻击您的服务器并减慢您的用户。