我需要有关htaccess和相对路径中的重写规则的解释...
在我的项目中,我有两个文件:
- index.php
- photos.php
在我的htaccess文件中,我有:
RewriteRule ^home$ index.php
RewriteRule ^photos/([0-9]+)$ photos.php?&id=$1
我使用以下地址访问我的photos.php
文件:
http://www.example.com/photos/15
在我的photos.php
文件中,如果我创建了链接<a href="home"
,则会收到404错误。因为它尝试访问网址:http://www.example.com/photos/index.php
有人可以向我解释一下我的错误是什么吗?
答案 0 :(得分:2)
由于您使用的是相对网址/photos/15
,而您当前的网址为:/photos/home
,这就是浏览器将此相对网址解析为http://
的原因,这显然会导致404.
您必须确保这些文件的路径以/
或斜杠<head>
开头。
其他您可以在页面的<base href="/" />
部分的{{1}}部分下方添加此项:{{1}},以便从该基本网址解析每个相对网址,而不是从当前页面的URL。