apache - 如何制作 tumblr 风格的个人资料网址
问题描述
我想知道,tumblr 是如何做这样的个人资料网址的:
http://www.username.tumblr.com/
http://username.tumblr.com/
我知道我们可以更改个人资料网址
http://www.website.com/profile.php?user=username
至
http://www.website.com/username
使用以下RewriteRule
RewriteRule ^([^/]+)/?$ profile.php?user=$1 [L,QSA,NC]
我不知道 tumblr 是如何处理这些个人资料网址的。
我们如何制作这样的用户个人资料网址:
http://www.username.website.com/
http://username.website.com/
我有一个虚拟主机。
解决方案
关键解决方案:通配符子域。
这使您可以*.domain.com
指出您的服务器。
在您的示例中,假设我们启用了通配符子域,domain.com
并且我们希望提供用户子域,例如http://username.domain.com
. 你会有这样的事情:
RewriteCond %{HTTP_HOST} ^((?!www.)[^.]+)\.domain\.com$ [NC]
RewriteRule ^(.*)$ /%1/$1 [L]
http://username.domain.com/xxx
指向哪里/username/xxx
。
请注意,此示例已尽可能简化和简化以进行说明。根据您的上下文,您可能需要其他规则来处理主域和其他条件。
推荐阅读
- node.js - 带有 --experimental-modules 标志的 VS Code 调试
- java - 如何获取 FireStore 使用 Android 生成的唯一用户 ID?
- c# - 如何配置 Azure Function v3 使用的默认 JsonSerializerOptions (System.Text.Json)?
- git - Git 分支不独立于 master
- c# - 为什么 GetClassName 和 RealGetWindowClass 返回相同的值?
- python - 没有名为“matplotlib”的模块,除了它在那里,同一文件夹中的其他文件还可以,交互式 python 很好
- mysql - MySQL在插入触发器失败后创建外键约束
- amazon-web-services - 跟踪多个 AWS SQS 队列上的消息
- node.js - 当用户在对话框流中从另一个意图键入列表项时如何触发列表
- mysql - 查找未与另一个 id 关联的 id 的 SQL 查询