当前位置: 首页 > 知识库问答 >
问题:

使用. htaccess将HTTP重定向到HTTP

张绍晖
2023-03-14

请不要向我推荐超过173票的长而详细的帖子。这对我不起作用。我也试过很多其他的(1,2,3,4)。他们都给我太多的重定向或错误500。因此,我的问题是:

用我的电流。htaccess,这就是发生的情况:

https://www.dukescasino.com/-工作完美

https://dukescasino.com/-重定向到上面的内容,这很好

下面的两个选项加载罚款,但它应该重定向到https版本:

http://www.dukescasino.com/

http://dukescasino.com/

这是电流。htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

我不相信它是相关的,但如果是这样,这里是当前活动的插件列表:

  • 高级自定义字段
  • All In One SEO Pack
  • Bop搜索框项目类型为导航菜单
  • 联系表格7
  • 禁用注释
  • Google XML网站地图
  • Jetpack by WordPress.com
  • 搜索

编辑1-执行的测试:

测试A:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTPS} off
# First rewrite to HTTPS:
# Don't put www. here. If it is already there it will be included, if not
# the subsequent rule will catch it.
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Now, rewrite any request to the wrong domain to use www.
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

结果:错误\u太多\u重定向

测试B:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTPS} !=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

结果:错误\u太多\u重定向

测试C:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{SERVER_PORT} ^80$
 RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

结果:错误\u太多\u重定向

测试D:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

结果:错误\u太多\u重定向

测试E:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

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

# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

结果:共找到302个。此外,尝试使用ErrorDocument处理请求时遇到500内部服务器错误。

共有3个答案

澹台硕
2023-03-14

这对我很有用:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !on           
RewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R,L]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress
伍心水
2023-03-14

问题解决了!

最终的htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{ENV:HTTPS} !=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
诸葛雅达
2023-03-14

在Dreamhost上,这奏效了:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
 类似资料:
  • 我正在尝试将所有http流量重定向到https。我尚未在服务器上安装SSL证书,并且正在使用cloudflare灵活SSL选项。 以下代码工作文件 但这让http://www.example.com转向了https://example.com 但是当我添加这个 重定向所有非www网址,如http://example.com到https://example.com 网站没有加载,并给我一个错误,说浏

  • 我的一个域也有类似的问题。我为裸域和www域都安装了SSL证书。 现在,然而我想把裸体http://domain.com和https://domain.com都重定向到https://www.domain.com. 我在我的.htaccess中有这个规则,但当您使用https://domain.com,但是,当访问时http://domain.com,它重定向到http://www.domain.

  • 问题内容: 我正在写一个简单的基于PHP的MVC-ish框架。我希望该框架能够安装在任何目录中。 我的PHP脚本抓取了请求uri并将其分为多个部分。它使段1成为控制器,而段2成为动作。当我这样做时,一切都很好 它将转到特定的模块控制器和方法。现在,我有一个默认控制器,即home控制器,它位于文件夹home中。 ,它将显示403禁止,因为此文件夹确实存在,相反,它也应该返回如果我将框架安装在其他文件

  • 问题内容: 我正在尝试永久运行在服务器上的nodejs中编写的小应用程序。当我这样启动我的应用程序时: 在我的文件夹中,该应用程序正在侦听端口61000 我的.htaccess文件的内容应该是什么? 当前内容(无效): 问题答案: 您应该使用Apache mod_proxy而不是mod_rewrite在Apache中运行Node.js应用程序: 如果您无法为Node应用添加虚拟主机,则可以尝试使用

  • 我已经找了好几个小时了,我不知道该怎么做。我需要进行以下301永久重定向: 当人们来访时http://web.domain.com.br/something/ 它们应该被重定向到http://domain.com.br/something/ 哪里(重要!),/something/不是真正的目录,它是wordpress multisite安装中的一个子博客。根上还有其他规则。htaccess文件已在

  • 我有以下htaccess代码: 我希望我的站点被重定向到使用HTTPS,并强制执行子域,但当我访问(没有HTTPS),它不会将我重定向到使用HTTPS。