重定向至https和目录不适用于移动LTE/3G连接



我有一个Joomla网站,有时该网站不会加载移动数据。如果我清除浏览器并尝试在LTE上加载网站,它将不会加载,然后我切换到3g,它将加载。然后同样的事情也发生在3G上。我清除了浏览器,网站不会加载,我切换到LTE,网站加载。我在家庭/办公室无线网络上没有问题。

该网站和所有插件都是最新的,然后我禁用了任何未使用的插件。

我得到了";Safari无法打开页面,因为它无法连接到服务器">

如果我尝试在没有https或home1的情况下访问sundenmanagement.com,我会得到一个";连接超时错误";

我有以下代码,请注意,我不是专业人士。我确实有两个htaccess文件,一个在htdocs中,它是home1文件夹中的一个的副本。

我正在尝试将所有流量重定向到https和/home1/index.php,然后需要弄清楚如何删除www。

index.php4-在htdocs 中

<?php header('Location: https://sundenmanagement.com/home1/');exit;?>

htaccess-它是Joomla htaccess文件,它位于上面写着##开始-自定义重定向的位置。

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

RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://sundenmanagement.com/home1/$1 [L,R=301]

我不确定这是否与我的手机提供商或重定向有关。如果能在这方面提供任何帮助,我们将不胜感激。谢谢

"无法连接到服务器"/"连接超时错误";

这些是网络/DNS错误,与服务器端代码/重定向无关,因为请求甚至没有到达您的服务器。

话虽如此,301重定向由客户端缓存,如果您试图将所有请求重定向到HTTPS+/home1/,则您的重定向肯定是错误的。。。

RewriteCond %{HTTP_HOST} ^www.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteCond %{HTTPS} off 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://sundenmanagement.com/home1/$1 [L,R=301]

第一条规则从www重定向到非www,但重定向到HTTP,即使最初的请求是HTTPS。因此,这将导致多个重定向。当在/home1/.htaccess文件中使用时,这实际上会从URL中删除/home1/子目录!

第二条和第三条规则执行相同的检查——请求是HTTP吗?因此,第三条规则永远不会被处理,当在根目录中使用时,请求永远不会被强制到/home1/

如果你不担心有一个";通用的";解决方案(您在上面混合了通用/特定规则(,然后在根/.htaccess中,您只需要在一个指令中强制执行/home1/,这里不需要任何其他指令,因为其他一切似乎都由/home1/.htaccess文件处理。例如:

# /.htaccess
RewriteEngine On
# Redirect everything to the "/home1/" subdirectory (HTTPS + non-www)
RewriteRule (.*) https://example.com/home1/$1 [R=301,L]

如果你想要一个";通用的";重定向,不明确包括域名,然后你可以将上述规则更改为以下规则,然而,这确实假设你没有任何其他子域(除了www(:

# Redirect everything to the "/home1/" subdirectory (HTTPS + non-www)
RewriteCond %{HTTP_HOST} ^(?:www.)?(.*?).?$ [NC]
RewriteRule (.*) https://%1/home1/$1 [R=301,L]

然后在/home1/.htaccess文件中,您将拥有以下规范重定向以及其他Joomla指令。例如:

# /home1/.htaccess
# www to non-www (and HTTPS)
RewriteCond %{HTTP_HOST} ^www.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
# HTTP to HTTPS
RewriteCond %{HTTPS} off 
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

最新更新