0

同様の質問がたくさんあることは知っていますが、2日以上かけて調査しても成功しなかったので、あなたが私の最後の希望です)

私は次の書き換えルールを書きました:

RewriteCond %{HTTPS} off [NC]
RewriteCond %{REQUEST_URI} ^((/member/settings)?/orders/?)$ [NC]
RewriteRule (.*) https://%{HTTP_HOST}/$1 [L,R=301]

RewriteRule \.(gif|jpe?g|png|css|js|eot|woff|ttf|svg)$ - [NC,L]

RewriteCond %{HTTPS} on [NC]
RewriteCond %{REQUEST_URI} !^((/member/settings)?/orders/?)$ [NC]
RewriteRule (.*) http://%{HTTP_HOST}/$1 [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [NC,QSA,L]

URLが必要example.com/orders/で、example.com/member/settings/orders/常にHTTPSにリダイレクトし、他のすべてのURLは強制的にHTTPを使用します。また、すべてのクエリはに転送する必要がありますindex.php。そして、明らかに、すべてのメディアファイルは要求されたものと同じプロトコルのままである必要があります。

http://example.com/orders/最初にリクエストするとhttps://example.com/orders/、にリダイレクトされますが、2回目はにリダイレクトされhttp://example.com/index.php?/orders/ます。実際に予想されることですが、問題は「index.php」がブラウザのアドレスバーに表示されることです。

問題は、ブラウザのアドレスバーにある「index.php」を削除する方法です。

どんな助けでもありがたいです。

4

1 に答える 1

0

次に、2 回目にhttp://example.com/index.php?/orders/にリダイレクトします ....「index.php」が URL のどこから来るのかわかりません...

それを行うための RewriteRule があるためです。

RewriteRule ^(.*)$ index.php?/$1 [NC,QSA,L]

そのブロックで何を達成しようとしているのかわかりませんが、それを取り除いてみてください。

于 2013-02-19T13:03:26.407 に答える