【问题标题】:HTAccess Rewrite: 301 Redirect Index but not SubdomainHTAccess 重写:301 重定向索引但不是子域
【发布时间】:2011-03-11 03:35:22
【问题描述】:

我正在创建一个在线社区,并且我正在尝试设置一个开发服务器。

目前,我使用 GIT 作为我的存储库。我有 mysite.com 和 mysite.net; .com 是主要站点。

我的目标:

  • 如果用户访问 www.mysite.net,他们 应该是301重定向到 www.mysite.com。

  • 如果用户访问 dev.mysite.net,他们应该被要求输入密码 然后带到测试平台..(在 mysite.net/)

这可以通过一些巧妙的 htaccess 重写来完成吗?

编辑:

# Here is what I have so Far
RewriteEngine on

#
## Redirect normal users to mysite.com
#
RewriteCond %{HTTP_HOST} ^(www\.)?mysite\.net$ [NC]
RewriteRule (.*) http://www.mysite.com/$1 [R=301,L]

#
## Redirect dev.mysite.net to root directory of mysite.net/
#
RewriteCond %{HTTP_HOST} ^dev.mysite\.net$ [NC]
RewriteRule (.*) http://www.mysite.net/$1 [R=301,L]


# REQUIRE Password for Dev Server
AuthUserFile /home/myaccount/public_html/mysite.net/.htpasswd
AuthGroupFile /dev/null
AuthName "Development Server"
AuthType Basic
require valid-user

【问题讨论】:

    标签: git .htaccess mod-rewrite http-status-code-301


    【解决方案1】:

    你的第一个目标很简单:

    # redirect to primary
    RewriteCond %{HTTP_HOST} ^(www\.)?mysite\.net$ [NC]
    RewriteRule (.*) http://www.mysite.com/$1 [R=301,L]
    

    如果您不想添加前缀,请删除 RewriteRule 中的 www。

    请回复有关第二个目标的更多信息。我不明白测试台部分。

    【讨论】:

    • 好的,这会将用户从 www.mysite.net/ 重定向到 www.mysite.com/。现在对于管理员,我希望能够访问 www.dev.mysite.net/ 并被要求输入密码。然后,这会将管理员带到 mysite.net 的根目录,而不是将它们重定向到 mysite.com。
    • 密码保护是HTTP BASIC AUTH还是自定义?
    • 如果您的 .net 站点位于一个单独的目录结构下,您可以在其中放置一个带有 HTTP BASIC AUTH 的 .htaccess,然后只需复制上述规则并将 (www\.) 更改为 dev. 并使用.net 地址。然后这会将 dev.mysite.net 重定向到 www.mysite.net。
    • 越来越近,重定向现在起作用了。唯一的问题是访问 mysite.net/ 的用户在重定向到 mysite.com 之前仍需要输入密码。请参阅上面我编辑的帖子。谢谢!!
    • 对不起,(www\.)?dev.。注意?。另外,我认为您不能共享相同的 .htaccess。这就是为什么我说 if 你有一个 separate 目录结构。就像现在一样,它需要对您的任何网站进行身份验证。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-17
    • 1970-01-01
    • 1970-01-01
    • 2013-08-10
    • 2014-02-28
    • 1970-01-01
    相关资源
    最近更新 更多