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
.htaccess 删除网站范围内的www,在某些目录上强制使用https,在其余目录上强制使用http?_.htaccess_Mod Rewrite_Ssl_Https_No Www - Fatal编程技术网

.htaccess 删除网站范围内的www,在某些目录上强制使用https,在其余目录上强制使用http?

.htaccess 删除网站范围内的www,在某些目录上强制使用https,在其余目录上强制使用http?,.htaccess,mod-rewrite,ssl,https,no-www,.htaccess,Mod Rewrite,Ssl,Https,No Www,首先,我想从我的域名中删除www => 我还希望某些目录是安全的(https),而其余目录仍然是http => 显然,它需要适用于所有条件,例如,如果有人键入: => 当人们离开登录页面时,它也会返回http。目前在.htaccess中,以下是我使用的软件自动完成的,我想需要在那里才能工作: RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule .* ./index.php 关于如

首先,我想从我的域名中删除www

=>

我还希望某些目录是安全的(https),而其余目录仍然是http

=>

显然,它需要适用于所有条件,例如,如果有人键入:

=>

当人们离开登录页面时,它也会返回http。目前在.htaccess中,以下是我使用的软件自动完成的,我想需要在那里才能工作:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* ./index.php
关于如何实现梦想控制所有这些事情,有什么想法吗

提前谢谢

===================

@秋葵遵照你的建议,这是我的全部。htaccess

RewriteEngine On


# remove www from host
RewriteCond %{HTTP_HOST} ^www\.(.+)
RewriteCond %{HTTPS}s/%1 ^(on(s)|offs)/(.+)
RewriteRule ^ http%2://%3%{REQUEST_URI} [L,R=301]

# force HTTPS
RewriteCond %{HTTPS} =off
RewriteRule ^(login)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# force HTTP
RewriteCond %{HTTPS} =on
RewriteRule !^(login)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]


RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* ./index.php


Options -Indexes
导航到仍然转到应该转到的时间我的顺序是否错误

删除www(已测试):

重定向(未测试):

试试这些规则:

# remove www from host
RewriteCond %{HTTP_HOST} ^www\.(.+)
RewriteCond %{HTTPS}s/%1 ^(on(s)|offs)/(.+)
RewriteRule ^ http%2://%3%{REQUEST_URI} [L,R=301]

# force HTTPS
RewriteCond %{HTTPS} =off
RewriteRule ^(login|foo|bar|…)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# force HTTP
RewriteCond %{HTTPS} =on
RewriteRule !^(login|foo|bar|…)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

您可能还想添加一些附加条件,仅更改GET和HEAD请求上的协议,而不更改POST请求上的协议。

阅读完这条所有POST时间行后,我成功地发现以下错误:我的网站(c4dprime.com)在mozilla firefox浏览器中附加了https:。Google和InternetExplore将域名地址显示为http:(firefox中的真正问题)我不想在任何浏览器中使用https:因为一个未知的重定向通过https连接到我的域:(导致此错误)在wordpress中安装以下插件后,(ssl的轻松重定向)。。。。我已经告诉每个人不要为wordpress使用任何低级插件

无论如何!在通过谷歌搜索引擎阅读了很多关于这个主题的文章和教程之后。现在我很高兴地说,我已经从这篇文章中解决了这个问题。还记得我的一件事吗?我对这种形式和wordpress很陌生

这条建议对我完全有帮助

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{HTTP_HOST} ^www\.yoursite\.com$ [NC]
RewriteRule ^(.*)$ http://yoursite.com/$1 [L,R=301]
在我的.htaccess文件中进行编辑或某些更改后,我现在使用的代码解决了此错误

AddHandler c4d-prime .com

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteBase /
RewriteRule ^$ http://www.c4dprime.com/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress
AddHandler c4d prime.com
#开始WordPress
重新启动发动机
在上重写cond%{HTTPS}
重写基/
重写规则^$http://www.c4dprime.com/ [R=301,L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/index.php[L]
#结束WordPress

此代码适用于我:

<IfModule mod_rewrite.c>

   RewriteEngine on

   RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
   RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

   RewriteCond %{HTTPS} !=on
   RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

</IfModule>

重新启动发动机
重写条件%{HTTP_HOST}^www\.(.*)$[NC]
重写规则^(.*)$https://%1/$1[R=301,L]
重写cond%{HTTPS}=在…上
重写规则^(.*)$https://%{HTTP_HOST}/$1[R=301,L]

Guten Tag秋葵!好的,我想我们正在取得进展。使用上述规则(包括.htaccess中最初的规则),删除www.works在所有情况下都有效。但是,导航到http://mydomain.com/login时,会转到http://mydomain/index。php@Anthony:作为一般规则,将导致外部重定向的规则放在仅导致内部重写的规则之前。否则,您可以从外部重定向已在内部重写的请求。我编辑了我的原始帖子,以便让您更好地了解我正在使用的内容。@Gumbo第一部分(“从主机删除www”)将在任何域上工作,而不更改.htaccess?而且它还将从http和https请求中剥离www?@Gumbo哇,太棒了:)我第一次看到一个解决方案,它考虑了http和https,而不必对域名进行“硬编码”。嗯,
^(login | foo | bar |……)$
只是一个匹配
登录
foo
条码>,等等的例子。是的,我明白了,我只使用了^(登录)$进行了尝试,但对于任何报告/问题/建议,仍然显示出相同的行为,您可以通过以下联系我:shahidabbas2001@gmail.com
AddHandler c4d-prime .com

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteBase /
RewriteRule ^$ http://www.c4dprime.com/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress
<IfModule mod_rewrite.c>

   RewriteEngine on

   RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
   RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

   RewriteCond %{HTTPS} !=on
   RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

</IfModule>