apache - 如何制作 tumblr 风格的个人资料 url

标签 apache .htaccess mod-rewrite virtualhost

我想知道,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

请注意,为了便于解释,该示例已被尽可能地减少和简化。根据您的上下文,您可能需要其他规则来处理主域和其他条件。

关于apache - 如何制作 tumblr 风格的个人资料 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54011867/

相关文章:

apache - 如何避免在 url 上输入 .php?

apache - 重写旧的子文件夹 url

.htaccess - 如何使用 htaccess 或 httpd.conf 将所有子目录重定向到 root?

.htaccess - 如何根据 cookie 值进行 htaccess 重定向

php - RewriteRule 不适用于生产服务器

php - 如何强制使用 HTTPS(Cloudflare 灵活 SSL)?

java - 使用 shell 和使用 Java API 为 HBase 中的列族设置 TTL

ios - Apple 设备 (Safari) 上的网站图像无法从其他服务器加载

ajax - Safari ajax 请求加载资源失败 : The network connection was lost

php - .htaccess 重定向主域和附加域问题