ウェブサイトを持っていますが、最近SSL証明書をインストールしました。 SSLをwww以外にも適用できるようにしたので、サイトへのすべてのリンクがwwwなしで常に安全なサイトにリダイレクトされるようにします。
さらに、バックエンドにWHMCSがあり、example.com/whmcs
ページをexample.com/client-portal
にリダイレクトします。whmcsとリンクするサードパーティのプラグインがあるためです。
.htaccess
ファイルに何を挿入する必要があり、どのフォルダーにファイルを挿入する必要がありますか?ルートからすべてを指定できますか?これが当てはまる場合、WHMCSにこれに満足させるにはどうすればよいですか?
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_Host} ^(?:www\.)?(.*)$ [NC]
RewriteRule (.*) https://%1%{REQUEST_URI} [L,R=301]
良いニュースは、問題の最初の部分を解決したことです。すべてのURLがwww以外のhttps Webサイトにリダイレクトされるようになりました。この問題を解決したコードは@John Condeによって提供されました-ありがとうJohn!
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_Host} ^(?:www\.)?(.*)$ [NC]
RewriteRule (.*) https://%1%{REQUEST_URI} [L,R=301]
次の目標は、example.com/whmcs
をexample.com/client-portal
にリダイレクトすることです。
...ただし、example.com/whmcs/admin
をexample.com/client-portal/admin
にリダイレクトしません。つまり、/whmcs/admin
はリダイレクトすべきではありません。
次のソリューションを試しましたが、成功しませんでした。皆さんが助けていただければ幸いです。
RewriteCond !^example\.com\/whmcs\/admin
RewriteCond ^example\.com\/whmcs$
RewriteRule https://example.com/client-portal [R=301,L]
私の意図は、これにより/whmcs
がリダイレクトされるが、/whmcs/admin
はリダイレクトされないことでした。
これがあなたの目標を完全に網羅するかどうかはわかりませんが、http wwwモードをhttps non-wwwモードに変えます:
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_Host} ^www\.example\.com$ [NC]
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]
次に、whmcsを新しいURLにリダイレクトするには、おそらく単純な301を使用できます:Redirect 301 /whmcs /client-portal
これらは両方とも、アプリのルート、またはオプションでAレコードが取得される場所に入ります。
複数の書き換えルールのアプローチを取ることもできます。 example.com
を実際のドメイン名に置き換えます。
RewriteEngine On
RewriteCond %{HTTPS} off
# HTTPS is off!
# Redirect to the secure canonical URL
RewriteRule (.*) https://example.com/$1 [L,R=301]
RewriteCond %{HTTP_Host} !^example\.com$ [NC]
# Host name is not correct!
# (maybe it has a www?)
# Redirect to the secure canonical URL
RewriteRule (.*) https://example.com/$1 [L,R=301]
succeedonline.co.za/whmcs
リダイレクトに関しては、単一の単純な書き換えルールを使用できます。
RewriteRule ^whmcs$ https://example.com/client-portal [L,R=301]
^
は「で始まる」および$
は「で終わる」ことを意味するため、リダイレクトはURLがexactlysucceedonline.co.za/whmcs
である場合にのみトリガーされますsucceedonline.co.za/whmcs/admin
の場合。
HTTPSプロトコルで非wwwサイトをまだリダイレクトしていないことに気付きました。ただし、HTTPプロトコルでは正常に機能します。完全な.htaccess
ファイルの抜粋を次に示します。
RewriteOptions inherit
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_Host} ^(?:www\.)?(.*)$ [NC]
RewriteRule (.*) https://%1%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_Host} ^(?:www\.)?(.*)$ [NC]
RewriteRule (.*) https://%1%{REQUEST_URI} [L,R=301]
#RewriteCond !^example\.com\/clients\/bestuur
#RewriteCond ^example\.com\/clients$
#RewriteRule https://example.com/client-portal [R=301,L]