0

您好我正在使用 Deployer 来部署 Craft CMS 网站。该站点符号链接到名为“当前”的目录。我正在使用 mod rewrite 从文档根目录中的 url 中删除 /current/public ,如下所示:

RewriteEngine On
RewriteCond %{REQUEST_URI} !current/public/
RewriteRule (.*) /current/public/$1 [L]

在当前/公共文件夹中有这个 htaccess 来删除 index.php 并创建漂亮的 url:

RewriteEngine On
# Send would-be 404 requests to Craft
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/(favicon\.ico|apple-touch-icon.*\.png)$ [NC]
RewriteRule (.+) index.php?p=$1 [QSA,L]

编辑 - 测试

以下工作强制使用 HTTPS,但我的 url 看起来像:example.com/current/public/about 等

RewriteEngine On

RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=302,L]

# Send would-be 404 requests to Craft
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/(favicon\.ico|apple-touch-icon.*\.png)$ [NC]
RewriteRule (.+) index.php?p=$1 [QSA,L]

如何调整它以强制站点始终使用 HTTPS?

4

2 回答 2

0

这会将所有 http 请求重定向到 https。重写引擎开启

RewriteCond %{SERVER_PORT} 80

RewriteCond %{HTTP_HOST} ^(www.)?yourdomainname.com

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

希望对你有帮助

于 2019-05-13T20:21:53.437 回答
0

以下是我设法开始工作的内容:

RewriteEngine on
RewriteRule ^(.*)$ current/public/$1
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=302,L]
于 2019-05-15T00:53:27.357 回答