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

Ran*_*Guy 6 php .htaccess url-rewriting

好的,所以我在我的网站上重写了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
Run Code Online (Sandbox Code Playgroud)

注意:我已经评论了前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/" />';
}
Run Code Online (Sandbox Code Playgroud)

目录结构

Root -
  home.php
  about.php
     -stylesheets
      default.css
     -includes
      embeds.php
  404.php
  .htaccess
Run Code Online (Sandbox Code Playgroud)

embeds.php包括home.php,about.php等,样式,脚本等,inshort头部沿 <base>标记在embeds.php

小智 1

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

它应该可以工作,如果不行则来自您的 DNS 或虚拟主机配置。