我首先耗尽了我的病人,然后是我的精力,最后是我的理智,试图为这样的主页进行重写重定向:
http://www.mydomain.com/index.php
至
http://www.mydomain.com/
我确实通过以下方式成功地做到了这一点:
RewriteRule ^/index\.php$ /$ [R=301,L]
但是问题是其余的网址都是这样完成的
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 来做到这一点!种。实际上在这里找到了一个帖子,其中 ppl 声明正则表达式是为了匹配某些东西,而尝试不匹配则根本没有效率。我尝试了近百个,用我最好的知识重新制作它们,但大多数都不起作用,有些直接破坏了 url,甚至出现了 500 个错误。
您决定任何您认为更有效的解决方案。
我对 regex 和 mod_rewrite 几乎一无所知,但我认为我已经超越了这一点,我应该寻求一些帮助。我已经尝试了两天,在这里和那里阅读了很多 apache 文档,我感觉我已经几乎触及工作线了,可能是标点符号有一些错误。我也有兴趣了解这里显示的任何内容,以解决我确信是我对正则表达式或如何以正确的顺序正确放置这样的重写或重写条件的误解。