【问题标题】:htaccess - Force SSL and www with Domain in Subfolderhtaccess - 使用子文件夹中的域强制 SSL 和 www
【发布时间】:2018-12-22 06:59:44
【问题描述】:

我正在使用一个 cPanel 主机,不幸的是,它不允许我访问 Apache conf 文件来设置任何VirtualHosts。我的域在子文件夹中。我现在也在尝试强制 SSL 以及强制www

我的要求:

  • 域需要在子文件夹中,因为我还有其他域
  • 强制 SSL
  • 强制 www。在网址中

以下是我的 .htaccess 文件中的内容:

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

我进行了各种尝试,似乎满足了我的一两个要求,但不是同时满足所有要求。

感谢任何帮助。

【问题讨论】:

  • @Nic3500 我做了研究。我已经搜索过这个问题,但无法找到符合我确切要求的解决方案。大多数解决方案处理两个,但不是全部三个。
  • 子目录应在 Apache 服务器端处理,为您的域使用 alias 或单独的 VirtualHost。恕我直言,不需要强制用户进入浏览器级别的目录。
  • 我同意,但是,它是一个 cPanel 主机,我发现它非常有限。据我所见,我无法使用我使用过的任何 cPanel 设置进行VirtualHost,这让我感到非常沮丧。如果可以的话,我会完全为每个域和子域做单独的 VirtualHosts。
  • 啊,老实说,我从来没有用过cpanel,总是直接在conf里,我会把-1去掉。
  • 谢谢!我也尽可能在 conf 中工作。

标签: apache .htaccess ssl mod-rewrite cpanel


【解决方案1】:

我快到了。在第二行之后,我不得不添加几个RewriteConds。不在 HTTPS 上,也不在 www:

RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]

最后一组规则:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{REQUEST_URI} !^/subfolder/
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^ https://www.example.com%{REQUEST_URI} [NE,L,R]
RewriteRule ^$ /subfolder/ [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /subfolder/$1 [L]

经过测试,它在域中强制使用 SSL 和 WWW,并将所有内容保存在子文件夹中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 2013-01-19
    • 2010-10-08
    • 2014-01-20
    • 2015-05-07
    • 2012-07-30
    • 1970-01-01
    相关资源
    最近更新 更多