【发布时间】:2021-03-10 08:29:25
【问题描述】:
我正在寻找一段代码,它可以重定向任何域(通配符),而不仅仅是特定域,以便重定向重定向到 HTTPS 和特定路径。
我尝试了很多代码,但我能找到的搜索结果中几乎 90% 都是用于重定向特定域的。
我为什么需要这个?我们使用 envoyer 将 Statamic 部署到我们的 cpanel 服务器。我们将其用于我们拥有的每一位客户。例如,我们的 Statamic 实例的 url 是 cms.example.com。我需要将其重定向到https://cms.example.com/cp,但它也可以是 cms.totallydifferent.co.uk/cp,我一辈子都找不到合适的例子。
我有一段代码(如下)运行了一段时间,但它不可靠。它有时有效,但大多数时候无效。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI}cp [R=301,L]
</IfModule>
根据要求提供完整的 .htaccess 文件:
SetEnv COMPOSER_HOME '/opt/cpanel/composer/bin'
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
RewriteCond %{HTTPS} !on [OR]
RewriteCond %{REQUEST_URI} !^/cp [NC]
RewriteRule ^ https://%{HTTP_HOST}/cp [R=301,L]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Send Requests To Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
</IfModule>
# ------------------------------------------------------------------------------
# Cache-Control Headers
# ------------------------------------------------------------------------------
<filesMatch "\.(gif|jpg|png|svg|woff)$">
Header set Cache-Control "max-age=31536000"
</filesMatch>
谁能指出我正确的方向?
亲切的问候
【问题讨论】:
标签: apache .htaccess mod-rewrite