Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 将HTTPS强制添加到我的.htaccess文件_Apache_.htaccess_Mod Rewrite - Fatal编程技术网

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]