.htaccess htaccess文件中的多个重写规则和条件

.htaccess htaccess文件中的多个重写规则和条件,.htaccess,http,mod-rewrite,https,.htaccess,Http,Mod Rewrite,Https,在我的.htaccess文件中,我已经有了一些重写条件和规则,并且工作正常 现在我需要将“http到https重定向”添加到我的htaccess文件中 这是我的旧.htaccess文件: RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule ^(.*)$ $1.php [L] RewriteRule ^([a-z0-9_-]+)$

在我的.htaccess文件中,我已经有了一些重写条件和规则,并且工作正常

现在我需要将“http到https重定向”添加到我的htaccess文件中

这是我的旧.htaccess文件:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php [L]

RewriteRule ^([a-z0-9_-]+)$   pages/$1.php [L]
RewriteRule ^([a-z0-9_-]+)/([-a-zA-Z0-9_]+)$   pages/$1/$2.php [L]
RewriteRule ^([a-z0-9_-]+)/([-a-zA-Z0-9_]+)/([-a-zA-Z0-9_]+)$   pages/$1/$2/$3.php [L]
我试图将下面的代码添加到文件中,但它无法正常工作。 例如,如果我将url直接写入其工作浏览器(仅使用www)。但如果点击我的任何反向链接或谷歌搜索结果链接,它就不起作用

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

我错在哪里?我应该把代码放在哪里?任何帮助都会很好。谢谢。

您的htaccess可能如下所示:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.yoursite\.com [NC]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L]

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php [L]

RewriteRule ^([a-z0-9_-]+)$ pages/$1.php [L]
RewriteRule ^([a-z0-9_-]+)/([-a-zA-Z0-9_]+)$   pages/$1/$2.php [L]
RewriteRule ^([a-z0-9_-]+)/([-a-zA-Z0-9_]+)/([-a-zA-Z0-9_]+)$   pages/$1/$2/$3.php [L]

至少,它对我有效,在我自己的实现中,您可以使用以下htaccess:

RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}/$1 [NC,R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.+)/?$ $1.php [L]

在测试之前清除浏览器缓存

我从chrome收到“ERR\u TOO\u MANY\u REDIRECTS”错误。它不工作。谢谢你,我已经在使用这个工具了。它没有给我任何错误,但在服务器上不起作用。@feyyaz你解决过这个问题吗?(我知道它是前一段时间记录的,但我现在明白了!)当您的站点没有www前缀时,可能会出现重定向错误。然后,您应该将其从HTTP中删除。请定义它无法正常工作。我编辑了我的问题。您是否收到404或ssl错误?我收到的重定向错误太多。Url更改为https,但在chrome中会抛出“ERR\u too\u many\u REDIRECTS”错误。页面未打开。当我查看开发人员工具网络部分时,我看到21 301重定向到同一url。这就是为什么我有太多重定向错误。你们还有其他规则吗?实际上我有,但我把它们转到注释行。现在我只使用上面的代码。我只是想打开我的主页url它不工作。这段代码在我的服务器上工作。我想看到你的完整访问权限,请发布它