【问题标题】:htaccess various rewriting needshtaccess 各种重写需求
【发布时间】:2012-11-02 11:05:30
【问题描述】:

我有一个网站,比如说http://myweb.com,我想将它迁移到根目录http://myweb.com/subfolder/ 的子文件夹中

我需要以下东西,我猜是使用 htaccess 文件:

1) 将所有非 www 重定向到 www 2)将根目录下的所有文件重定向到子文件夹中的等效文件,同时将所有htm扩展名更改为html,即根文件中的文件.htm必须重写为子文件夹中的文件,如subfolder/file.html 3)我希望在地址中仍然显示 www.myweb.com 而不是 www.myweb.com/subfolder

这一切都可能吗?如何?感谢您的任何回答

【问题讨论】:

    标签: file .htaccess url rewrite directory


    【解决方案1】:

    将这些规则添加到文档根目录中的 htaccess:

    RewriteEngine On
    
    # 1) Redirect all non-www to www
    RewriteCond %{HTTP_HOST} !^www\. [NC]
    RewriteCond %{HTTP_HOST} !^$
    RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [L,R=301]
    
    # 2) Redirect all files in the root to equivalent files in the subfolder
    #    at the same time changing all htm extension to html
    RewriteCond %{REQUEST_URI} !^/subfolder/
    RewriteRule ^(.*)\.htm$ /subfolder/$1.html [L]
    RewriteCond %{REQUEST_URI} !^/subfolder/
    RewriteRule ^(.*)$ /subfolder/$1 [L]
    

    最后的规则没有 R 标志,因此它们不会导致外部重定向(从而改变浏览器 URL 地址栏中的内容)。

    【讨论】:

    • 您好乔恩,感谢您的回答。似乎它正在工作,除了我仍然在浏览器中看到新地址。如果在子文件夹中找不到该页面,您还可以建议一种重定向到某个页面的方法吗?
    • 我又发现了一些问题。似乎在 ie9 中,如果我输入地址:myweb.com,则非 www 到 www 不起作用,但在 Firefox 中它可以工作。奇怪的是,在 IE9 中,url 保留在地址中,但在 Firefox 中却没有。我很困惑!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多