代码之家  ›  专栏  ›  技术社区  ›  Stephan Muller

将主域重写为文件夹

  •  0
  • Stephan Muller  · 技术社区  · 14 年前

    我正在运行一个Mediawiki安装程序,最近我从一个附加域(cpanel)切换到了一个驻留域,因为它更便宜,而且有了.htaccess,我仍然可以重定向所有内容。这适用于多个域,包括这个域,但现在又出现了另一个错误。

    在放置域时,我将其重定向到/public_html/,其中我有以下.htaccess规则:

    RewriteCond %{HTTP_HOST} ^(.*\.)?thedomain.com$
    RewriteCond %{HTTP_HOST} !^www\.
    RewriteRule (.*) http://www.thedomain.com/$1 [R=301]
    
    RewriteCond %{HTTP_HOST} ^www.thedomain.com$
    RewriteRule ^(.*)$ thedomain.com/$1 [L]
    

    从而强制执行WWW,然后将其重定向到我的服务器上的domain.com/文件夹

    如前所述,这一切工作就像一个附加槽,所以我想保持这样。

    在domain.com/文件夹中,我有以下规则:

    #main page
    RewriteCond %{REQUEST_URI} ^/$
    RewriteRule (.*) /wiki/Main_Page [R,L]
    

    此规则的目标是将所有访问www.thedomain.com的人直接重定向到wiki的主页。这通常是有效的,但由于我使用了上面描述的.htaccess(对于驻留域),所以我只会在domain.com/文件夹中获取文件列表。为什么这个规则没有重定向到正确的页面?

    当我手动输入www.thedomain.com/wiki/main_页面时,它会工作,这表明问题不应该出现在第一个.htaccess中,而应该出现在第二个.htaccess中。

    1 回复  |  直到 14 年前
        1
  •  0
  •   Stephan Muller    14 年前

    显然更改了main.htaccess中的规则:

    RewriteCond %{HTTP_HOST} ^www.mansonwiki.com$
    RewriteCond %{REQUEST_URI} ^/$
    RewriteRule ^(.*)$ wiki/Main_Page [R,L]
    
    RewriteCond %{HTTP_HOST} ^www.mansonwiki.com$
    RewriteRule ^(.*)$ mansonwiki.com/$1 [L]
    

    成功了。不是很干净,但很管用。