htaccess - 协助强制 WWW 和 HTTPS。当前结果为 https://www.example.com/example.com
htaccess - assistance forcing WWW and HTTPS. Currently results in https://www.example.com/example.com
我在正确设置 htaccess 时遇到问题,希望得到一些帮助来解决问题。目前,我在 /public_html/ 文件夹中使用以下 htaccess 将共享主机上的主域路由到 /public_html/example.com(为了保持一致性):
# .htaccess main domain to subdirectory redirect
RewriteEngine on
# Change example.com to be your main domain.
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
# Change 'subdirectory' to be the directory you will use for your main domain.
RewriteCond %{REQUEST_URI} !^/example.com/
# Don't change the following two lines.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Change 'subdirectory' to be the directory you will use for your main domain.
RewriteRule ^(.*)$ /example.com/
# Change example.com to be your main domain again.
# Change 'subdirectory' to be the directory you will use for your main domain
# followed by / then the main file for your site, index.php, index.html, etc.
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^(/)?$ example.com/ [L]
一切正常,但现在我想添加行以强制使用 WWW 和强制使用 HTTPS。我有一个非常适合我的子域的 htaccess 文件,但是当我将它添加到我的 /public_html/example.com/.htaccess 文件时,它会产生奇怪的行为。 example.com 的任何流量都会重定向到 https://www.example.com/example.com。此代码如下所示。
#First rewrite any request to the wrong domain to use the correct one (here www.)
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
#Now, rewrite to HTTPS:
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
任何人都可以帮我合并这两者,以便我将目录重定位到 /public_html/example.com,强制 WWW 和强制 HTTPS 一气呵成?非常感谢您!
这是由您 .htaccess
中的另一条规则引起的。有问题的规则是:
RewriteRule ^(/)?$ example.com/ [L]
或者更准确地说,规则末尾的 [L]
标志。代表 LAST
。这是告诉您的 .htaccess
停止任何通过此重写规则的规则。
您可以通过将新规则放在 .htaccess
的顶部、删除 [L]
标志或完全删除其他规则来简单地解决此问题。
买家选择。
我在正确设置 htaccess 时遇到问题,希望得到一些帮助来解决问题。目前,我在 /public_html/ 文件夹中使用以下 htaccess 将共享主机上的主域路由到 /public_html/example.com(为了保持一致性):
# .htaccess main domain to subdirectory redirect
RewriteEngine on
# Change example.com to be your main domain.
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
# Change 'subdirectory' to be the directory you will use for your main domain.
RewriteCond %{REQUEST_URI} !^/example.com/
# Don't change the following two lines.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Change 'subdirectory' to be the directory you will use for your main domain.
RewriteRule ^(.*)$ /example.com/
# Change example.com to be your main domain again.
# Change 'subdirectory' to be the directory you will use for your main domain
# followed by / then the main file for your site, index.php, index.html, etc.
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^(/)?$ example.com/ [L]
一切正常,但现在我想添加行以强制使用 WWW 和强制使用 HTTPS。我有一个非常适合我的子域的 htaccess 文件,但是当我将它添加到我的 /public_html/example.com/.htaccess 文件时,它会产生奇怪的行为。 example.com 的任何流量都会重定向到 https://www.example.com/example.com。此代码如下所示。
#First rewrite any request to the wrong domain to use the correct one (here www.)
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
#Now, rewrite to HTTPS:
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
任何人都可以帮我合并这两者,以便我将目录重定位到 /public_html/example.com,强制 WWW 和强制 HTTPS 一气呵成?非常感谢您!
这是由您 .htaccess
中的另一条规则引起的。有问题的规则是:
RewriteRule ^(/)?$ example.com/ [L]
或者更准确地说,规则末尾的 [L]
标志。代表 LAST
。这是告诉您的 .htaccess
停止任何通过此重写规则的规则。
您可以通过将新规则放在 .htaccess
的顶部、删除 [L]
标志或完全删除其他规则来简单地解决此问题。
买家选择。