.htaccess - htaccess 别名域到主域并保留文件名
问题描述
我有 2 个附加域,我想将它们用作主域的别名。我的 htaccess 中有这个设置,但它不是 100% 正确的。每当我从两个域之一访问页面时,它总是重定向到主域索引页面。
例如,当它需要重定向到https://www.bumpstudios.co.uk/downloads时,去https://bumpstudios.com/downloads会重定向到https://www.bumpstudios.co.uk/
这是我的 htacess 文件
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteRule .* https://www.bumpstudios.co.uk%{REQUEST_URI} [R,L]
RewriteBase /
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
RewriteCond %{HTTP_HOST} ^bumpstudios.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.bumpstudios.com$ [OR]
RewriteCond %{HTTP_HOST} ^bumpstudios.uk$ [OR]
RewriteCond %{HTTP_HOST} ^www.bumpstudios.uk$ [OR]
RewriteCond %{HTTP_HOST} ^bumpstudios.co.uk$
RewriteRule (.*)$ https://www.bumpstudios.co.uk/{REQUEST_URI} [R=301,L]
</IfModule>
解决方案
经过更多的摆弄,现在问题似乎得到了解决。我删除了 RewriteBase / 并将域 rewriteCond 规则放在顶部附近。似乎已经成功了。这是修改后的版本
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteRule .* https://www.bumpstudios.co.uk%{REQUEST_URI} [R,L]
RewriteCond %{HTTP_HOST} ^bumpstudios.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.bumpstudios.com$ [OR]
RewriteCond %{HTTP_HOST} ^bumpstudios.uk$ [OR]
RewriteCond %{HTTP_HOST} ^www.bumpstudios.uk$ [OR]
RewriteCond %{HTTP_HOST} ^bumpstudios.co.uk$
RewriteRule (.*)$ https://www.bumpstudios.co.uk/$1 [R=301,L]
# RewriteBase /
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
推荐阅读
- html - 将可点击箭头添加到下拉选择
- typescript - 从一个对象复制到另一个对象 - 仅来自其接口的公共属性的值
- reactjs - 具有全局状态管理的 next.js
- laravel - Laravel 在非直接相关值的 Pivot 上检索关系
- python - 在 VGG 神经网络中放置和获取大图像的策略
- amazon-web-services - 自动将数据从 S3 加载到 Redshift
- oracle - 如何在 oracle 中获取现有数据存储 CTXSYS(为索引创建)的定义?
- python-3.x - oauth2session dynamics365:不断收到错误 401 未授权
- javascript - 长度为 n 且 k 连续为 1 的二进制数组的数量
- postgresql - Nominatim - pgsql 返回错误代码 (3)