繁体   English   中英

重写URL www.domain.com,导致我的页面上出现404

[英]Rewrite URL www.domain.com causing 404 on my page

好的,所以我已经重写了我网站上的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

注意:我已经评论了第1条第2条重写规则,因为即使我更改它们,将.htaccess上载到服务器后也不会生效,感觉就像它已被缓存。

附加信息,正在使用embeds.php <base>标记

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.phpabout.php等中,样式表,脚本等(简而言之,头部 <base>标签一起包含在embeds.php

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM