htaccess 从 url 中删除段并重定向到 https 和 www
htaccess remove segment from url and redirect to https and www
我正在使用 Deployer 将 Craft CMS 站点部署到共享主机帐户。
可从域访问最新部署。com/current/public
我的 .htaccess 文件如下所示,它从 url 中删除 current/public 并强制使用 https:
RewriteEngine on
RewriteRule ^(.*)$ current/public/
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=302,L]
我现在还需要重定向所有 url 以使用 www
如何调整我的 .htaccess 以在所有 url 上强制使用 www?
*** 更新 ***
我已经通过以下方法解决了上述问题:
RewriteEngine on
RewriteRule ^(.*)$ current/public/
RewriteCond %{HTTP:X-Forwarded-Proto} !=https [OR]
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+) [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=301,L]
当我转到 example.com/admin 时,它会重定向到 example.com/current/public/admin。如何调整我的 htaccess 文件以从管理员 urls 中删除 'current/public'?
您的 http->https
和 www
添加规则应该是最重要的规则,以便它适用于原始 URI 而不是由于其他规则而重写的 URI。
RewriteEngine on
RewriteCond %{HTTP:X-Forwarded-Proto} !=https [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+) [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=301,L,NE]
RewriteRule ^(.*)$ current/public/ [L]
确保在测试此规则之前清除浏览器缓存。
同时在 /current/public/.htaccess
中添加此重定向规则:
RewriteCond %{THE_REQUEST} /current/public/(\S+) [NC]
RewriteRule ^ /%1 [R=301,L,NE]
我正在使用 Deployer 将 Craft CMS 站点部署到共享主机帐户。
可从域访问最新部署。com/current/public
我的 .htaccess 文件如下所示,它从 url 中删除 current/public 并强制使用 https:
RewriteEngine on
RewriteRule ^(.*)$ current/public/
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=302,L]
我现在还需要重定向所有 url 以使用 www
如何调整我的 .htaccess 以在所有 url 上强制使用 www?
*** 更新 ***
我已经通过以下方法解决了上述问题:
RewriteEngine on
RewriteRule ^(.*)$ current/public/
RewriteCond %{HTTP:X-Forwarded-Proto} !=https [OR]
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+) [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=301,L]
当我转到 example.com/admin 时,它会重定向到 example.com/current/public/admin。如何调整我的 htaccess 文件以从管理员 urls 中删除 'current/public'?
您的 http->https
和 www
添加规则应该是最重要的规则,以便它适用于原始 URI 而不是由于其他规则而重写的 URI。
RewriteEngine on
RewriteCond %{HTTP:X-Forwarded-Proto} !=https [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+) [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=301,L,NE]
RewriteRule ^(.*)$ current/public/ [L]
确保在测试此规则之前清除浏览器缓存。
同时在 /current/public/.htaccess
中添加此重定向规则:
RewriteCond %{THE_REQUEST} /current/public/(\S+) [NC]
RewriteRule ^ /%1 [R=301,L,NE]