Php htaccess,重定向到特定文件的https和非www https
我有一个网站的工作,并试图通过htaccess重定向了几天。我在网上搜索并找到了不错的作品,尤其是在这个网站上,但尽管我尝试了几乎所有的可能性,但我还是没能实现我想做的 我的需要是重定向所有网站到非www http,包括https,除了只有一个文件。比如说重定向 http://www.example.com/../php?a=…Php htaccess,重定向到特定文件的https和非www https,php,apache,.htaccess,mod-rewrite,redirect,Php,Apache,.htaccess,Mod Rewrite,Redirect,我有一个网站的工作,并试图通过htaccess重定向了几天。我在网上搜索并找到了不错的作品,尤其是在这个网站上,但尽管我尝试了几乎所有的可能性,但我还是没能实现我想做的 我的需要是重定向所有网站到非www http,包括https,除了只有一个文件。比如说重定向 http://www.example.com/../php?a=… https://www.example.com/../php?a=… https://example.com/../php?a=… 到 http://example.c
https://www.example.com/../php?a=…
https://example.com/../php?a=…
到
http://example.com/../../php?a=… 但是,只有一个特定文件
http://www.example.com/../theSpecificFile.php?a=…
https://www.example.com/../theSpecificFile.php?a=…
http://example.com/../theSpecificFile.php?a=…
应重定向到
https://example.com/../theSpecificFile.php?a=… 为此,我编写了许多htaccess文件,但在每种情况下,我都无法满足自己的需求。e、 g.在最后一次访问时:
Options +FollowSymlinks
RewriteEngine on
RewriteBase /
ErrorDocument 404 http://example.com/404.php
#force https for certain pages
RewriteCond %{HTTPS} !=on
RewriteRule ^(theSpecificFile\.php)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R]
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R,L]
#redirect www.example.com to example.com (or any other subdomain)
RewriteCond %{HTTP_HOST} !^example.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]
通过此htaccess文件,
当我尝试https://www时,我得到了不安全或不受信任的连接(我是从另一种语言翻译的,希望它可能是真实的翻译),带有ssl\u error\u bad\u cert\u域
并且当我尝试访问specific文件.php时,我得到了错误定义“infine loop”(我再次希望这可能是一个真实的翻译) 这对我来说真的很沮丧,所以,任何帮助都将不胜感激
提前感谢看,这里您将
specificFile.php
重定向到它的https版本,但是第二个重定向规则触发并将浏览器重定向回http,然后第一个规则重定向回https…这就是为什么您得到无限循环的原因
ssl\u error\u bad\u cert\u domain表示证书不适用于此域,因此您可能需要检查是否使用了正确的证书。请尝试:
RewriteCond %{HTTPS} on
RewriteConf %{REQUEST_URI} !=/theSpecificFile.php
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R,L]
您可以使用:
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www\. [NC,OR]
RewriteCond %{REQUEST_URI} !/theSpecificFile\.php [NC]
RewriteRule ^ http://example.com/%{REQUEST_URI} [L,R=302]
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} /theSpecificFile\.php [NC]
RewriteRule ^ https://example.com/%{REQUEST_URI} [L,R=302]
当一切正常时将[R=302,L]更改为[R=301,L]Ok,在更改第一行和第二行“RewriteCond和RewriteRule”位置后,当尝试进入example.com时,在RewriteConf%{REQUEST\u URI}上重定向到“
RewriteCond%{HTTPS}”=/theSpecificFile.php RewriteRule(.*)http://%{http\u HOST}%{REQUEST\u URI}[R,L]#强制某些页面使用https RewriteCond%{https}!=在RewriteRule^(theSpecificFile\.php)$https://%{HTTP_HOST}%{REQUEST_URI}[L,R]
尝试使用example.com访问htaccess并获得https://example/com