htaccess和regex重定向多种样式

htaccess和regex重定向多种样式,regex,apache,.htaccess,mod-rewrite,Regex,Apache,.htaccess,Mod Rewrite,我想重定向以下所有内容 example.com http://example.com https://example.com http://www.example.com 到 https://www.example.com 我有这个: RewriteEngine on RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} RewriteRule ^/(.*):SSL$ https://%{

我想重定向以下所有内容

example.com
http://example.com
https://example.com
http://www.example.com

https://www.example.com
我有这个:

RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
RewriteRule ^/(.*):SSL$   https://%{SERVER_NAME}/$1 [R,L]


Options +FollowSymlinks
RewriteCond %{HTTP_HOST} !^www.example.com
RewriteRule ^(.*)$ https://www.example.com/$1 [R=permanent,L]
下面这两个正在工作

http://www.example.com 
https://example.com 
但最后一个显示为:

https://www.example.com/https://example.com/
我如何纠正这一点,使所有三个都正确重定向到

谢谢你的帮助

^(?:.*?:)?(?:\/\/)?(?:.*?\.)?(.*?\.)(.*)$
试试这个,换成

https://www.$1$2

见演示


您想要的所有都可以在一条规则中完成,如下所示:

RewriteEngine on

RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.example.com%{REQUEST_URI} [L,NE,R=301]

确保这是root.htaccess中的第一条规则。

谢谢。嗯,既然这些都不像我原来的代码,那你想让我把它们贴在哪里呢?:-)从演示中,它看起来正是我需要的,但我不想在.htaccess文件中犯太多错误。您可以更具体地使用我的原始代码作为开始吗?仅仅因为正则表达式能够匹配给定的URL并不意味着这个正则表达式也可以用于
mod_rewrite
。@vks-谢谢您的麻烦。我对正则表达式太不了解了,不知道该怎么处理它。@AllThisOnAnACER unfotunaly我对php不了解:(…只是正则表达式。是的!谢谢你,你第一次就搞定了。我这噩梦般的一天对你的帮助好多了。非常欢迎你,很高兴它成功了。祝你今天过得愉快。