Htaccess 通过匹配 url 字符串和参数进行 URL 重定向

发布于 2024-12-02 18:24:16 字数 824 浏览 1 评论 0原文

我需要匹配 URL 格式,并根据 URL 匹配需要将传入请求重定向到不同的页面。

例如

http://www.domain.com/path1/path2/ 错误网址 -1/ ?var1=val1
http://www.domain.com/path1/path2/ another-wrong-url -1/ ?var1=val1
http://www.domain.com/path1/path2/ 第三个错误的网址 -1/?var1=val1
http://www.domain.com/path1/path2/ Fourth-wrong-url -1/?var1=val1

查看高亮显示的 URL 匹配项。它始终将 -1 作为 url 字符串。 。那需要重定向一个静态页面。

而其他一些 URL 始终将 var1 作为 URL 查询字符串参数。因此,如果 URL 将 var1 作为查询字符串,则需要将这些 URL 重定向到另一个静态页面。

所以我尝试了这个但没有成功。请帮助我完成这个重定向脚本

  RewriteEngine on
  RewriteRule ^(path1/path2/[^-1]*)$ http://www.domain.com/target-page [L,R=301]

I need to match the URL format and depends on URL matches need to redirect the incoming requests to different pages.

For example

http://www.domain.com/path1/path2/ wrong-url -1/ ?var1=val1
http://www.domain.com/path1/path2/ another-wrong-url -1/ ?var1=val1
http://www.domain.com/path1/path2/ third-wrong-url -1/?var1=val1
http://www.domain.com/path1/path2/ fourth-wrong-url -1/?var1=val1

See the High lighted URL Matches. It always having -1 as the url string. . That needs to be redirected one static page.

And some other URL's always have var1 as URL Query String parameter. So if URL have var1 as Query string then those URL's needs to be redirected to another Static page.

So i tried this but didn't worked. Please help me in this redirecting script

  RewriteEngine on
  RewriteRule ^(path1/path2/[^-1]*)$ http://www.domain.com/target-page [L,R=301]

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

独留℉清风醉 2024-12-09 18:24:16

1. 以 -1/ 结尾的 URL 规则:

RewriteRule ^path1/path2/([^/]+)-1/$ http://www.domain.com/target-page [L,R=301]

2. 查询字符串中包含 var1= 参数的规则:

RewriteCond %{QUERY_STRING} (^|&)var1=([^&]*)(&|$)
RewriteRule .* http://www.domain.com/another-target-page [L,R=301]

注意:
通过这些规则,现有的查询字符串也将传递到新的 URL(例如 /path1/path2/wrong-url-1/?say=meow 将变为 http://www. domain.com/target-page?say=meow)。要删除它,请在目标 URL 末尾添加 ? (例如 http://www.domain.com/another-target-page? [L,R=301]

1. Rule for URL that ends with -1/:

RewriteRule ^path1/path2/([^/]+)-1/$ http://www.domain.com/target-page [L,R=301]

2. Rule for having var1= parameter in query string:

RewriteCond %{QUERY_STRING} (^|&)var1=([^&]*)(&|$)
RewriteRule .* http://www.domain.com/another-target-page [L,R=301]

NOTE:
With these rules existing query string will be passed to a new URL as well (e.g. /path1/path2/wrong-url-1/?say=meow will become http://www.domain.com/target-page?say=meow). To drop it, add ? at the end of target URL (e.g. http://www.domain.com/another-target-page? [L,R=301]

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文