mod_rewrite の正しい手順を作成するのを手伝ってください。とても難しそうです。
私は正確に次のものが必要です:
1. www.site.comからsite.comにリダイレクトします。
www.site.com/hello ==> site.com/hello
www.site.com/abc/def ==> site.com/abc/def
など、その他のルールを適用する必要があります。
2. 特定のファイルやフォルダ ( robots.txt、images/など) への直接アクセス (書き換えなし)
多分
RewriteCond %{REQUEST_URI} !^/(robots.txt|favicon.ico|images|documents|~.\*)
私は正しいですか?したがって、次のような URL
site.com/robots.txt ==> site.com/robots.txt
site.com/documents/file1.pdf ==> site.com/documents/file1.pdf
書き直してはいけません。
3. 別の変換:
site.com/index.php?anythinghere ==> site.com/a/index.php?anythinghere
4. しかし、site.com と site.com/ という URL を入力すると、Apache はルート フォルダー (site.com/index.php) の index.php を呼び出す必要があります。
site.com ==> site.com/index.php
site.com/ ==> site.com/index.php
5. MVC スクリプトがあり、次の URL を入力すると:
1. site.com/controller or site.com/controller/ or site.com/controller//
2. site.com/controller/function or site.com/controller/function/
3. site.com/controller/function/parameter or site.com/controller/function/param1/param2/param3
そして、コントローラーがリスト内の事前定義された単語の 1 つである場合、たとえば「index」、「news」、「contacts」(数百語まで拡張される可能性があります) の場合、index.php を呼び出して、URL を書き換えます。次の方法:
site.com/controller ==> site.com/index.php?q=controller
site.com/controller/ ==> site.com/index.php?q=controller/
site.com/controller// ==> site.com/index.php?q=controller//
site.com/controller/function ==> site.com/index.php?q=controller/function
site.com/controller/function/ ==> site.com/index.php?q=controller/function/
site.com/controller/function/parameter ==> site.com/index.php?q=controller/function/parameter
site.com/controller/function/param1/param2/param3 ==> site.com/index.php?q=controller/function/param1/param2/param3
6. 最後に、以前のルールがすべて適用されていない場合は、書き直す必要があります。
site.com/anythinghere ==> site.com/a/index.php?anythinghere
apache が mod_rewrite を再帰的に使用しないことを願っています。
簡単ではないことは承知しておりますが、ひとつでもルール作りのお手伝いができれば幸いです。
前もって感謝します!