6

好的,所以我在我的网站中重写了 URL,现在由于某种原因,如果我输入 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

注意:我已经评论了 1st 2 rewrite 规则,即使我更改它们在上传到服务器后也不会影响.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.php包含home.php等中about.php,样式表、脚本等,简而言之,头部 <base>标签都在embeds.php

4

2 回答 2

1

这也是Firefox的问题,它正在缓存我的.htaccess文件

以下是一些有用的链接,可能会帮助其他用户参考此问题

Apache - 如何在调试 htaccess 时禁用浏览器缓存

htaccess 文件以某种方式被缓存?

于 2013-04-10T08:09:19.743 回答
1
RewriteCond %{HTTP_HOST} ^domain.com$
RewriteRule ^(.*) http://www.domain.com/$1  [QSA,L,R=301]

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

于 2013-04-10T07:48:40.223 回答