gpt4 book ai didi

regex - 定位并重写一个 url 忽略任何其他 url,问题是其他 url 部分匹配它

转载 作者:行者123 更新时间:2023-12-01 09:39:59 26 4
gpt4 key购买 nike

我首先耗尽了我的耐心,然后是我的精力,最后是我的理智,试图为这样的主页重写重定向:

http://www.mydomain.com/index.php

http://www.mydomain.com/

我确实成功地完成了类似的事情:

RewriteRule ^/index\.php$ /$ [R=301,L]

但是问题是其余的 url 都是这样完成的

http://www.mydomain.com/index.php?page=this-is-a-page-title

这使得之前的重写将它们分解为:

http://www.mydomain.com/?page=this-is-a-page-title

我还没有设法正确地编写一个 rewritecond 来排除所有包含该字符串的 url

index.php?page=

或者最好是直接定位主页的东西,这让我寻找可以放在 url 之后的东西,比如

http://www.mydomain.com/index.php(here)

这会告诉 mod_rewrite 不要使用任何比这更长的 url,但我无法理解如何仅使用 rewriterule 或 request_uri 的 rewritecond 来做到这一点!亲切。事实上,在这里找到了一篇帖子,其中有人说正则表达式是为了匹配某些东西,并且尝试不匹配任何东西根本没有效率。我尝试了将近一百个,尽我所能重新制作它们,但大多数都不起作用,有些直接破坏了 url,甚至出现了 500 个错误。

您可以决定您认为更有效的解决方案。

我学到的不仅仅是关于正则表达式和 mod_rewrite 的几乎一无所知,但我认为我已经超出了我应该寻求帮助的地步。我试了两天,在这里和那里阅读了很多 Apache 文档,我感觉我已经过去了,几乎触及了工作线,可能在标点符号上有一些错误。我也有兴趣了解这里显示的任何内容,以修复我确定是我对正则表达式或如何正确地以正确的顺序放置重写或像这样重写的误解。

最佳答案

你可以使用 RewriteCond条件以下重写规则。像这样:

RewriteCond %{QUERY_STRING} =""
RewriteRule ^/index\.php$ / [R=301,L]

这里的条件是查询字符串为空,这似乎是你想要的。

关于regex - 定位并重写一个 url 忽略任何其他 url,问题是其他 url 部分匹配它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19558345/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com