.htaccess - 使用 htaccess 和通配符 DNS 将 URL 重写为子域
问题描述
我想将我的网站 URL http://domain.tk/site/google.com更改 为 google.com.domain.tk 我试过了
RewriteEngine On
RewriteRule ^site/([^/]+)/?$ http://$1.domain.tk/ [NC,R=301,L]
它重定向到 google.com.domain.tk 并显示主页内容而不是http://domain.tk/site/google.com中的内容
我想要的例子可以在这个网站上找到
解决方案
我在对您的问题的评论中提到的文档清楚地说明并在示例中演示了重定向规则中的参数顺序是 1. 应用于传入请求的路径组件的匹配模式和 2. 请求的目标路径或 URL应该在内部被重写。您实施的规则与您所要求的相反:您实施了一个外部重定向到您想要重写的主机名。
这个例子应该让你去:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^google\.com\.domain\.tk$
RewriteRule ^ /site/google.com%{REQUEST_URI} [QSA]
为此,必须将重写模块加载到 http 服务器中,显然,它必须为主机激活。您应该在您的 http 服务器内的实际主机配置中实施此类规则。如果您无权访问它(因此,如果您使用廉价的托管服务提供商),那么您可以使用分布式配置文件(通常名为“.htaccess”),但需要先在主机配置中启用它带有性能损失。
推荐阅读
- rest - Convertto-Json 不存在文件内容
- javascript - Node 中的抓取数据不会出现在 HTML 页面中
- python - 为调用静态方法的类中的方法编写单元测试
- python - 为什么 myVar = strings.Fields(scanner.Text()) 比 python 中的类似操作花费更多时间?
- python - OpenCV:合并/合并重叠的边界框,用周围的边界框替换
- html - 使用 d3.js 添加不带值的属性
- c# - 打开pdf文件的未知加密类型
- javascript - 3 秒后移除 div 覆盖
- list - Prolog 得到 NxN 矩阵的平方
- angular - 我怎样才能让这个角度动画重复?