Mod Rewrite - .htaccess



我最近从http转到了https,我有一个重定向链,它显示在safari中,减缓了我网站的加载时间。

我和bluehost相处了几天,似乎没有人知道/愿意帮助重写.htaccess文件,这也可能不是他们的工作,所以这很公平。我自己花了几个小时,现在我有了大致的理解,但仍然需要一些帮助。

我的首选域是https://jambarteambuilding.com

safari中的重定向链是http://www.jambarteambuilding.com然后到https://www.jambarteambuilding.com然后到https://jambarteambuilding.com

我的目标是

http://www.jambarteambuilding.com
http://jambarteambuilding.com
https://www.jambarteambuilding.com

全部重定向到

https://jambarteambuilding.com

此外。

我的网站和wordpress安装位于一个名为"clean"的子目录中。所以public_html/clean,您可以在其中找到wp-admin、wp-content和wp-includs。

我的.htaccess文件是这样写的,如果你键入jambartembuilding.com,网站会从clean加载,但你在只有jambartemuilding.com的URL中看不到jambartembuildering.com clean(这是我更喜欢的(。

所以

这是我当前的.htaccess文件。

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^(www.)?jambarteambuilding.com$ 
RewriteCond %{REQUEST_URI} !^/clean/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /clean/$1 
RewriteCond %{HTTP_HOST} ^(www.)?jambarteambuilding.com$ 
RewriteRule ^(/)?$ clean/index.php [L]

我的感觉是,我需要在第2行之后写一个[OR]语句来捕获条件中的https://www.jambarteambuilding.com。第2行和第7行似乎缺少[NC]R=301似乎缺少第6行和第8行第2行和第7行似乎是重复的。jambartembuilding.com应该是jambartemuilding.com我猜(www.(?意思是"有或没有www">

有人能帮我重写一下吗!

来自这个问题。像这样的东西应该行得通。。。

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

或者,如果你能够修改Apache VirtualHost文件,那么这会更好。。。

<VirtualHost *:80>
ServerName jambarteambuilding.com
ServerAlias www.jambarteambuilding.com
Redirect / https://jambarteambuilding.com/
</VirtualHost>
<VirtualHost *:443>
ServerName jambarteambuilding.com
ServerAlias www.jambarteambuilding.com
# ... SSL configuration goes here
</VirtualHost>

这解决了它!

RewriteEngine on
RewriteCond %{HTTPS} off
RewriteCond %{HTTPS_HOST} !^jambarteambuilding.com$ [NC]
RewriteRule ^(.*)$ https://jambarteambuilding.com/$1 [L,R=301]
RewriteCond %{REQUEST_URI} !^/clean/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /clean/$1
RewriteRule ^(/)?$ clean/index.php [L]

谢谢大家!

最新更新