【问题标题】:. htaccess - redirect to subfolder with HTTPS while hiding URL part. htaccess - 在隐藏 URL 部分时使用 HTTPS 重定向到子文件夹
【发布时间】:2019-03-23 09:04:00
【问题描述】:

我正在尝试将整个网站重定向到 https://,同时隐藏部分 URL。

我的根看起来像这样:

/mywebsite
    /subfolder_1
    /subfolder_2
    /subfolder_3
    ............

到目前为止,我设法隐藏了 URL 部分以及文件扩展名:

Options +MultiViews
RewriteEngine On
RewriteCond %{SERVER_PORT} 80 

RewriteCond %{HTTP_HOST} ^mywebsite\.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^mywebsite\.com$
RewriteCond %{REQUEST_URI} !subfolder_1/*
RewriteRule (.*) /subfolder_1/$1 [L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

但是,我在重定向到 HTTPS 时遇到问题,同时保持 URL 部分隐藏。

我试过了

RewriteRule ^(.*)$ https://www.mywebsite.com/$1 [R,L]

但如果我使用它,似乎所有其他更改都不会应用,从而使整个 URL 可见(mywebsite.com/subfolder_1/index.php 而不是mywebsite.com/index.php)。

有什么想法吗?我已经尝试了一段时间,似乎无法找到合适的解决方案。

【问题讨论】:

    标签: .htaccess redirect https


    【解决方案1】:

    您可以使用以下规则:

    Options +MultiViews
    RewriteEngine On
    
    RewriteCond %{HTTPS} !on
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE]
    
    RewriteCond %{REQUEST_URI} !/subfolder_1/ [NC]
    RewriteRule .* /subfolder_1/$0 [L]
    
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME}.php -f
    RewriteRule ^(.+?)/?$ $1.php [L]
    

    【讨论】:

      猜你喜欢
      • 2014-01-25
      • 2013-03-09
      • 2015-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-13
      • 1970-01-01
      相关资源
      最近更新 更多