[英]How to redirect http to https for www and non www for a directory using .htaccess
我正在嘗試將所有這些條件重定向到https://www.domain.com/admin/但僅針對某個目錄
RewriteCond
http://domain.com/admin/
http://www.domain.com/admin/
https://domain.com/admin/
RewriteRule
https://www.domain.com/admin/
我試過這個但是給了我一個重定向循環:
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/admin [R=301,L]
謝謝
UPDATE我有一種感覺,服務器上的虛擬主機與它有關。 這是我在/ etc / apache2 / sites-enabled / 000-default中的內容
<VirtualHost *:80> ServerAdmin webmaster@domain.com ServerName default.domain.com # Set application environment. SetEnvIf Host "^" APPLICATION_ENV=production SetEnvIfNoCase Host "^(stage\\.)(.*)$" APPLICATION_ENV=staging BOGUS_HTTP_HOST=$2 RewriteEngine On #RewriteLogLevel 3 # Remove parts from the front if host name has too many parts, # unless a directory with the right name exists in /var/www. RewriteCond %{HTTP_HOST} "^([^.]+)\\.(.*[^.]+\\.[^.]+)$" RewriteCond /var/www/%{HTTP_HOST} !-d RewriteRule "^(.*)$" "http://%2$1" [R,L] # Redirect admin and member requests to SSL connection RewriteCond %{REQUEST_URI} ^/(admin|member|join|order)(/.*)?$ [NC] RewriteRule ^.*$ https://%{HTTP_HOST}/%1%2 [R,L] # Set the bogus ssl header SetEnv BOGUS_HTTPS "off" UseCanonicalName Off VirtualDocumentRoot /var/www/%0 </VirtualHost>
在/admin/.htaccess
有這個規則:
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.domain.com%{REQUEST_URI} [R=301,L,NE]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.