.htaccess重定向问题

时间:2014-05-31 12:37:41

标签: .htaccess mod-rewrite redirect

我正在使用000webhost.com创建一个网站。这是为了让mysite.com访问www.mysite.com,mysite.com/page访问mysite.com/under_construction/page。一些问题:

  1. mysite.com访问www.mysite.com/under_construction而不是www.mysite.com(尽管www.mysite.com确实显示了under_construction的内容)
  2. mysite.com/invalidpage转到默认错误页面而不是error.mysite.com/404。
  3. error.mysite.com显示正常,但www.error.mysite.com将我带到默认错误页面。
  4. 我设置了以下DNS区域记录:

    www.bossgamerz.cu.cc CNAME bossgamerz.cu.cc

    RewriteEngine On
    #Options +FollowSymLinks
    ErrorDocument 404 http://www.error.bossgamerz.cu.cc/404
    ErrorDocument 403 http://www.error.bossgamerz.cu.cc/403
    RewriteBase /
    RewriteCond %{HTTP_HOST} www.bossgamerz.cu.cc
    RewriteCond %{REQUEST_URI} !under_construction/
    RewriteRule ^(.*)$ under_construction/$1 [L]
    RewriteCond %{HTTP_HOST} !^www\. [NC]
    RewriteRule ^(.*)$ http://www.bossgamerz.cu.cc/$1 [R=301,L]
    

    我不一定需要将错误消息放在错误子域中。

1 个答案:

答案 0 :(得分:0)

您的规则似乎顺序不正确,您需要从重写中排除错误页面。试试这段代码:

Options +FollowSymLinks
ErrorDocument 404 /404
ErrorDocument 403 /403

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ http://www.bossgamerz.cu.cc%{REQUEST_URI} [NE,R=301,L]

RewriteCond %{REQUEST_URI} !^/(under_construction|404|403)
RewriteRule ^ under_construction [L]