0

htaccessの経験が豊富な人がこれを手伝ってくれることを願っています. 開発者からライブホスト (別のホスティング会社) に移動したばかりの Drupal 7 サイトがあります。しかし、プロトコルのない URL を直接アドレス バーに入力すると (例: examplesite.com/members)、ページは examplesite.com/index.php にリダイレクトされます。私はhtaccessファイルでこれを修正しようとして混乱してきましたが、プロトコルなしでURLを許可し、https://.

私たちのコード:

   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{REQUEST_FILENAME} !-d 
   RewriteCond %{REQUEST_URI} !=/favicon.ico
   RewriteRule ^ index.php [L]


  RewriteEngine On
  RewriteCond %{HTTPS} off
  RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

RewriteRule ^ index.php [L] 行をすべてのルールの下に移動するか、コメントアウトしてみました。これにより最初の問題は修正されましたが、バックエンドの drupal 管理機能が壊れます (管理メニューが表示されない、何も保存できないなど)。

さらに詳しい情報が必要な場合はお知らせください。前もって感謝します。

4

1 に答える 1

0

ブロック全体、条件 + ルールを一番下に移動する必要があります。Drupal はindex.phpスクリプトを介してすべてをルーティングします。これを適切に行うには、前の 3 つの条件が必要です。単純に行を移動するとRewriteRule、条件がすべてなくなります。

RewriteEngine On

# this needs to come first
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

# then drupal stuff comes LAST
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^ index.php [L]
于 2013-10-17T17:14:35.650 に答える