0

https を使用してサイトにフォームを提供する必要があります。これがフォームの URL だとしましょう:

http://www.mysite.com/cms/visit/residents/form

リクエストはここに行く必要があります:

https://www.mysite.com/cms/visit/residents/form

私は共有ホスティングを使用しているので、これをルート ディレクトリの .htaccess ファイルに入れます。

RewriteCond %{HTTPS} !=on
RewriteRule ^(cms/visit/residents/form.*)$ https://www.mysite.com/$1 [R=301,L]

これは開発サーバー (Apache/Debian Squeeze) では正常に機能しますが、.htaccess ファイルをライブにすると、ルールが機能しません。.htaccess ファイルで既に動作している他の書き換えとリダイレクトがあるため、書き換えエンジンはオンで正常に動作しています。これらの他のルールは問題なく機能します。サイトをホストしている IT 担当者に尋ねたところ、ルールが機能しない理由がわかりません。上記のルールに数え切れないほどのバリエーションを試しましたが、ライブサーバーで動作するものはありません. 私が試した別の例を次に示します。

RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^cms/visit/residents/form(.*) https://www.mysite.com/cms/visit/residents/form$1 [R=301,L]

開発サーバーのページからライブサーバーのhttps urlに書き換えられるので対象は問題ないと思います。私が考えることができるのは、ライブサーバー上のApache構成ファイルとのやり取りがあることだけです。これには次が含まれます。

<VirtualHost *:80>
 ServerName www.mysite.com
 RewriteEngine on
 RewriteOptions inherit
 RewriteCond %{HTTP_HOST} !=www.mysite.com
 RewriteCond %{HTTP_HOST} !=""
 RewriteRule (.*) $1 [R=permanent,L]
</VirtualHost>
<VirtualHost *:443>
 ServerName www.mysite.com
 RewriteEngine on
 RewriteOptions inherit
 RewriteCond %{HTTP_HOST} !=www.mysite.com
 RewriteCond %{HTTP_HOST} !=""
 RewriteRule (.*) $1 [R=permanent,L]
 SSLEngine on
</VirtualHost>

誰かアイデアはありますか?テストごとにブラウザーのキャッシュをクリアし、.htaccess ファイルが正しくアップロードされていることを確認しています。

.htaccess ファイル:

AddDefaultCharset utf-8
AddType text/x-component .htc
AddType application/x-httpd-php .php .phtml
DirectoryIndex index.html index.php redirect.php index.htm
Options -Indexes +Includes +ExecCGI

ErrorDocument 404 /not-found.html 
ErrorDocument 401 /access-error.html

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(cms/visit/residents/form.*)$ https://www.mysite.com/$1 [R=301,L]

# To tidy up urls of pages run by live Drupal install (under /cms)
RewriteRule (^research/events/patronage.*) cms/$1 [L]
RewriteRule (^intranet/facilities/meeting-rooms/supervision-room-booking) cms/$1 [L]
RewriteRule (^intranet/facilities/meeting-rooms/function-room-booking) cms/$1 [L]
RewriteRule (^study/five-question-feedback-form) cms/$1 [L]
RewriteRule (^intranet/students/graduates/ballot-form) cms/$1 [L]
RewriteRule (^intranet/students/graduates/summer-rooms) cms/$1 [L]
RewriteRule (^intranet/students/undergrads/accommodation/survey) cms/$1 [L]
RewriteRule (^intranet/students/grads/accommodation/survey) cms/$1 [L]
RewriteRule (^graduate-accommodation) cms/$1 [L]
RewriteRule (^undergraduate-accommodation) cms/$1 [L]
RewriteRule (^intranet/students/easter-vacation) cms/$1 [L]
RewriteRule (^students/grads/accommodation/ballot.html) cms/$1 [L]
RewriteRule (^students/undergrads/accommodation/ballot.html) cms/$1 [L]
RewriteRule (^intranet/students/advent-booking) cms/$1 [L]
RewriteRule (^intranet/students/christmas-vacation) cms/$1 [L]
RewriteRule (^intranet/students/undergrads/summer-vacation) cms/$1 [L]
RewriteRule (^six-question-survey) cms/$1 [L]
RewriteRule (^conference-dining/feedback) cms/$1 [L]
RewriteRule (^intranet/meat-free) cms/$1 [L]
RewriteRule (^conference-dining/enquiry-form) cms/$1 [L]
RewriteRule (^study/undergraduate/open-days/booking-form) cms/$1 [L]
RewriteRule (^study/undergraduate/open-days/arts-form) cms/$1 [L]
RewriteRule (^study/undergraduate/open-days/sciences-form) cms/$1 [L]
#RewriteRule (^intranet/college.*) cms/$1 [L]

# For the Cognitive Studies course 2012-13
Redirect permanent /cognitive http://mysite.com/intranet/students/cognitive-skills.html

(非常に多くの書き直しがあることはわかっていますが、これを 1 つのルールにまとめる必要があります!)

4

0 に答える 0