Apache 将HTTPS强制添加到我的.htaccess文件
我有一个Apache 将HTTPS强制添加到我的.htaccess文件,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我有一个.htaccess文件,其中包括一些重写,这些重写正在做一些事情,工作正常。看起来是这样的: <IfModule mod_rewrite.c> Options +FollowSymLinks RewriteEngine On # Removes .php ending from path # --------------- RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{DOCUMENT_ROOT}/$1.php -
.htaccess
文件,其中包括一些重写,这些重写正在做一些事情,工作正常。看起来是这样的:
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
# Removes .php ending from path
# ---------------
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(.+?)/?$ /$1.php [L]
# Services & Knowledgebase rewrites
# ---------------
RewriteRule ^services/([a-zA-Z0-9-/]+)/([a-zA-Z0-9-/]+)$ /services.php?cat=$1&s=$2 [L]
RewriteRule ^services/([a-zA-Z0-9-/]+)$ /services.php?service=$1 [L]
RewriteRule ^knowledge-base/([a-zA-Z0-9-/]+)/([a-zA-Z0-9-/]+)$ /knowledge-base.php?cat=$1&s=$2 [L]
RewriteRule ^knowledge-base/([a-zA-Z0-9-/]+)$ /knowledge-base.php?cat=$1 [L]
</IfModule>
在RewriteEngine On
语句之后,当我尝试example.com
时,url保持为example.com
,我得到以下结果:
找不到
在此服务器上找不到请求的URL/
如果我转到https://example.com
它工作得非常好
如何在保留其他重写规则的同时正确强制https?
谢谢你的帮助
迈克以下是我通常使用的:
RewriteCond %{HTTPS} !=on
RewriteCond %{ENV:HTTPS} !=on
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
从未遇到过任何问题。重复主题。嗨,我不认为它是复制品。这篇文章是关于从https强制使用http的,不包括任何关于使用额外重写的内容。
RewriteCond %{HTTPS} !=on
RewriteCond %{ENV:HTTPS} !=on
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]