私は最初に患者を使い果たし、次にエネルギーを使い果たし、最後に正気を失い、次のようなホームページのリダイレクトを書き換えようとしました。
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
文字列を含むすべての URL を除外する rewritecond を適切に作成できませんでした。
index.php?page=
または、できればホームページのみを直接ターゲットにする何か、これにより、次のようなURLの後に配置するものを探すようになりました
http://www.mydomain.com/index.php(here)
これは mod_rewrite にそれより長い URL を使用しないように指示しますが、rewriterule のみまたは request_uri の rewritecond を使用してそれを行う方法を理解できませんでした。種類。実際、正規表現は何かに一致するものであり、何も一致しないことを試みるのはまったく効率的ではないと ppl が述べた投稿が見つかりました。私は100回近く試し、私の最善の知識でそれらを作り直しましたが、ほとんどが機能せず、いくつかは直接URLを壊し、さらには500個のエラーが発生しました.
より効率的な解決策であると感じるものは何でも決定します。
私は、regex と mod_rewrite についてほとんど何も知らなかった以上のことを学びましたが、助けを求める必要があるという点を超えていると思います。私は 2 日間試してみましたが、あちらこちらで apache のドキュメントをよく読みました。また、ここに示されていることを理解して、正規表現について、またはこのような書き換えまたは書き換えを正しい順序で適切に配置する方法について、私の側の誤解を修正することにも興味があります。