好的,所以我已经重写了我网站中的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.php
、about.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文件以某种方式被缓存?