我正在开发一个托管在 apache 上的网站。用户可以在 www.hostname.com/~username 以默认方式访问他们的网站空间。
我正在尝试更改为 username.hostname.com,因为它更干净一些。如果用户尝试访问旧的 www.hostname.com/~username 地址,我只想将它们重定向到新地址。不知道是用 mod_alias 还是 mod_rewrite 规则?
哪个更合适?
我正在开发一个托管在 apache 上的网站。用户可以在 www.hostname.com/~username 以默认方式访问他们的网站空间。
我正在尝试更改为 username.hostname.com,因为它更干净一些。如果用户尝试访问旧的 www.hostname.com/~username 地址,我只想将它们重定向到新地址。不知道是用 mod_alias 还是 mod_rewrite 规则?
哪个更合适?
mod_alias
提供Redirect
和RedirectMatch
指示。
“一个 URL 或一类 URL 到其他地方的简单重定向应该使用这些指令而不是 RewriteRule 来完成。RedirectMatch 允许您在重定向标准中包含正则表达式,提供使用 RewriteRule 的许多好处。”
“例如,/one 目录中的所有 URL 都必须重定向到 http://one.example.com/,或者可能所有 http 请求都必须重定向到 https。这些情况最好由 Redirect 指令处理。记住 Redirect保留路径信息。也就是说,对一个 URL /one 的重定向也会重定向该 URL 下的所有 URL,例如 /one/two.html 和 /one/three/four.html”
[来源]
你可以使用这样的东西:
RedirectMatch /~([^/]+) http://$1.localhost/