重写URL www.domain.com在我的页面上导致404

时间:2013-04-10 07:37:38

标签: php .htaccess url-rewriting

好的,所以我在我的网站上重写了网址,现在出于某种原因,如果我输入www.domain.com就会抛出404错误,如果我输入domian.com,一切正常。

DirectoryIndex home.php

IndexIgnore *
#RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
#RewriteRule ^(.*)$ http://%1/directory/$1 [L,R=301]

RewriteRule ^home/?$   home.php  [NC]
RewriteRule ^about/?$   about.php  [NC]

RewriteRule ^404/?$   404.php  [NC]

ErrorDocument 404 http://domain.com/directory/404

注意:我已经将前2个重写规则评论为即使我更改了它们,但在将.htaccess上传到服务器之后也没有效果,感觉就像它已缓存一样。

其他信息,使用<base>

中的embeds.php标记
if($_SERVER['REMOTE_ADDR'] == '::1') {
    echo '<base href="http://localhost/projects/directory/" />';
} else {
    echo '<base href="http://domain.com/directory/" />';
}

目录结构

Root -
  home.php
  about.php
     -stylesheets
      default.css
     -includes
      embeds.php
  404.php
  .htaccess
embeds.phphome.php

about.php 包含,以及样式表,脚本等,将的主题部分与一起提升<base>标记位于embeds.php

2 个答案:

答案 0 :(得分:1)

RewriteCond %{HTTP_HOST} ^domain.com$
RewriteRule ^(.*) http://www.domain.com/$1  [QSA,L,R=301]

它应该可以工作,如果它不是来自您的DNS或Vhost配置。

答案 1 :(得分:1)

这也是firefox的一个问题,它缓存了我的.htaccess文件

以下是一些有用的链接,可能有助于其他用户引用此问题

Apache - how to disable browser caching while debugging htaccess

htaccess file somehow being cached?