【问题标题】:MVC url Rewriting something like http://controller.website.comMVC url 重写类似 http://controller.website.com
【发布时间】:2010-12-02 15:59:45
【问题描述】:

使用 MVC。有没有办法让任何像 .example.com 这样的 url 指向 example.com/user/

http://marwan.example.com 指向example.com/user/marwan

控制器是用户,动作是索引,以marwan为变量。

我的一个想法是制作一个自定义错误页面来处理 404 并查看 url 是否以 *.example.com 之类的内容开头并重定向到正确的控制器。必须有更好的方法来做到这一点!

【问题讨论】:

    标签: asp.net-mvc url-rewriting


    【解决方案1】:

    看看这个答案,它可能会对你有所帮助。

    ASP.NET URL Rewriting

    您可以尝试以下方法:

    RewriteConf %{HTTP_HOST} !^example\.com$ [NC]
    RewriteRule ^(.*)$    http://example.com/user/%1$1
    RewriteRule ^/user/([a-zA-Z0-9]+)\.example\.com/(.*)  http://example.com/user/$1/$2 [NC,L]
    

    此规则的作用是首先将主机插入 URL 路径,然后从主机中删除正确的值并在后端按照您想要的方式写入。

    【讨论】:

    • 我已经尝试过了,但它扰乱了 MVC 应用程序的流程,因为任何 url 都指向 mysite.com/users/.. 是否可以只让 username.mysite.com 指向mysite.com/user/username 而像 mysite.com/search 这样的任何其他网址都可以正常工作吗?还有没有办法隐藏网址?就像在 url 中保留 username.mysite.com 一样。感谢您的帮助,非常感谢。
    • 是的,您只需将正确的配置规则包装在重写规则周围。您可能想尝试包含 mod_rewrite 更改规则 [C],它表示如果任何一个规则失败,它们都会在链中失败。
    猜你喜欢
    • 2015-07-31
    • 2014-03-07
    • 2011-04-23
    • 2016-03-28
    • 2023-03-18
    • 2012-06-03
    • 1970-01-01
    • 2015-07-15
    • 2015-07-24
    相关资源
    最近更新 更多