【问题标题】:Create a 301 redirect in .htaccess for folder to subdomain AND redirect www to non-www在 .htaccess 中为文件夹创建一个 301 重定向到子域并将 www 重定向到非 www
【发布时间】:2012-02-07 18:35:53
【问题描述】:

我到处搜索并使用了一些示例,但它们不能满足我的特定需求,因此为什么我在这里问是否有人可以帮忙?我知道下面的 http:: 不正确,只是因为我不能在这里发布链接。

我想将 http:://www.mysite.co.uk/ 重定向到 http:://mysite.co.uk/ 同时能够重定向

  1. http://www.mysite.co.uk/mysub/ 2. http://mysite.co.uk/mysub/ 到 3. http://mysub.mysite.co.uk/

1. 和 2. 中的所有文件都应重定向到 3. 中的对应文件。

例如:http:://www.mysite.co.uk/mysub/file.html 和 http:://mysite.co.uk/mysub/file.html 都应该去 http::// mysub.mysite.co.uk/file.html

这只是影响子域,因此站点根目录中的其他文件夹和文件不受影响。

如果有人能帮助我理解并在 .htaccess 文件中编写 301 重定向的代码,我将不胜感激!谢谢!

【问题讨论】:

    标签: .htaccess redirect subdomain no-www


    【解决方案1】:

    这是您在 .htaccess 文件中需要的代码:

    Options +FollowSymLinks -MultiViews
    RewriteEngine on
    RewriteBase /
    
    # To redirect http:://www.mysite.co.uk/ to http:://mysite.co.uk/
    RewriteCond %{HTTP_HOST} ^www\.(mysite\.co\.uk)$ [NC]
    RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
    
    # To redirect /mysub/foo to http://mysub.mysite.co.uk/foo
    RewriteCond %{HTTP_HOST} ^(www\.)?(mysite\.co\.uk)$ [NC]
    RewriteRule ^(mysub)/?(.*)$ http://$1.%2/$2 [R=301,L,NC]
    

    【讨论】:

    • 谢谢,这有帮助,但只有一件事不起作用:http://www.mysite.co.uk/mysub 不会访问 http:://mysub.mysite .co.uk/
    • 嗨,http:://www.mysite.co.uk/mysub 现在只是将您带到 http:://mysite.co.uk/ 而不是应有的子域?
    • 哦,对不起,我认为我犯了一个错误,没有设置 / 可选。再次编辑我的答案,它现在应该可以工作了。请检查。
    • 嗨@anubhava,很抱歉延迟回复。 http:://www.mysite.co.uk/mysub 确实 重定向到 http:://mysub.mysite.co.uk 其他一切都很好。
    • 做了一些小的更新,请再试一次。但是,如果您可以在问题中发布完整的 .htaccess,这将有所帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多