【发布时间】:2013-04-01 22:24:27
【问题描述】:
好的,所以我已经在我的网站中重写了 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
【问题讨论】:
-
apache rewrite log中有什么内容?网址是否被替换? -
@Vyktor 我在哪里可以找到日志文件?并且一切正常,但是如果我在 URL 中有
www.它会搞砸,所以我使用这两条规则来摆脱 www,但现在我也不能这样做,因为它没有改变那两条规则,休息,如果我编辑 htaccess 并上传它会影响但不影响前 2 条规则 -
这取决于您的网络服务器的设置,您可能需要重新配置它(或者希望
rewritelog(参见上一条评论中的网址)您可以将配置添加到.htaccess)。 -
另外一件事...您是否将
www.domain配置为与domain相同的目录(和IP 等)?www.domain/home.php和domain/home.php工作方式一样吗? -
谢谢,但我无权访问服务器,对于您的第二条评论,是的,它是一样的
标签: php .htaccess url-rewriting