.htaccess 从HTTP重定向到HTTPS显示公用文件夹

.htaccess 从HTTP重定向到HTTPS显示公用文件夹,.htaccess,http,redirect,https,.htaccess,Http,Redirect,Https,我想从http重定向到https 我尝试使用这个.htaccess代码 RewriteEngine On RewriteCond %{HTTPS} !on RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 但在url中显示公用文件夹 更多说明我的网站是www.example.com白色此代码如下www.example.com/public/ 我有这个代码是我的.htaccess RewriteEngine On RewriteBase /

我想从http重定向到https

我尝试使用这个.htaccess代码

RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
但在url中显示公用文件夹

更多说明我的网站是www.example.com白色此代码如下www.example.com/public/

我有这个代码是我的.htaccess

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ index.php?$1 [L,QSA]
我想重定向到一个特定的域,如果用户尝试例如:example.com,我需要重定向到www.example.com


有解决方案吗?

这是因为您还在重写规则中请求URI。您需要将规则更改为以下内容:

RewriteEngine On
RewriteCond %{HTTPS} !on [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

您可以看到此规则与/public/URI一起工作,它将https://example.com 只有请确保在测试之前清除缓存。

我仍然不清楚您的问题。@Philipp,首先感谢您的时间,我的问题是当我尝试重定向到HTTPS时,公用文件夹显示在url中,如www.example.com/public/,我需要避开它来澄清-如果你去http://www.example.com/ .htacces当前将您重定向到http://www.example.com/public?@Philipp yep当我添加到重定向代码时,如果我尝试例如此urlhttp://www.example.com/ .htacces当前将您重定向到https://www.example.com/public/And 发生了什么,如果删除代码并直接转到https://www.example.com?It先生,这是我的工作,但是当我创建其他页面时,例如,example.com/test,它是这样运行的https://example.com/?test 我可以放下这个吗?我认为这个问题将由你的其他规则引起。将这些新规则置于这些规则之上,以便它们首先运行。如果我将其置于规则之下,请给我错误?;如果我将其置于规则之上,请尝试example.com/test重定向到https://example.comYes,这就是上述规则的作用。那么它在工作?不,它总是将我重定向到第一页