0

/ *これは、10日前に尋ねた別の質問( .htaccess / https://www.example.comへのリダイレクトと仮想フォルダアクセス)の複製のように見えますが、(a)応答がありませんでした。私が質問に加えた変更、および(b)ここでのこの質問は、上記のより複雑なバージョンであり、新しいクエリが必要であると信じています* /

次のエンティティを持つサイトがあります:example.com/index.html example.com/main.php example.com/SPECIAL/main.php上記の他に、example.com / images /、/cssのようなフォルダーがありますスクリプトによって生成されたhtmlが指す/など。

以下のすべてに.htaccessマジックが必要です:

(a)ユーザーを「example.com」から「www.example.com」に永続的にリダイレクトします(301のもの)

(b)ユーザーをhttp://www.exampleから永続的にリダイレクトします。 comからhttps://www.example.com(301のもの)

(c)example.com/にアクセスするユーザーは、もちろんindex.htmlを参照する必要がありますが、 example.com/
     ABCDEFまたは
     example.com/ABCDEF/と入力する場合ABCDEFが実際のフォルダ(/ SPECIAL /、/ images /、/ css /など)である場合を除いて、
example.com / main.php?folder = ABCDEFにリダイレクトする必要があります (d)ユーザーがexample.comにアクセスしようとした場合/ REALFOLDER /(例:/ images /)、example.com/にリダイレクトする必要があります




(e)これらすべてがexample.com/index.htmlの表示を台無しにしないでください

これが複雑に聞こえたら申し訳ありませんが、それはまさに私が必要としていることです!

S

4

1 に答える 1

0

次のルールを試してください。

# (a) and (b)
RewriteCond %{HTTP_HOST} =example.com [OR]
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://www.example.com%{REQUEST_URI} [L,R=301]
# (d)
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule . / [L,R]
# (c)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ main.php?folder=$1 [L]
于 2009-11-05T14:11:09.067 に答える