RewriteRule,GET参数和相对路径

时间:2016-08-14 11:37:35

标签: php .htaccess mod-rewrite path

我需要有关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

有人可以向我解释一下我的错误是什么吗?

1 个答案:

答案 0 :(得分:2)

由于您使用的是相对网址/photos/15,而您当前的网址为:/photos/home,这就是浏览器将此相对网址解析为http://的原因,这显然会导致404.

您必须确保这些文件的路径以/或斜杠<head>开头。 其他您可以在页面的<base href="/" />部分的{{1}}部分下方添加此项:{{1}},以便从该基本网址解析每个相对网址,而不是从当前页面的URL。