【发布时间】:2016-12-20 21:02:26
【问题描述】:
我需要一个关于 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 错误。因为它试图访问 URL:http://www.example.com/photos/index.php
谁能向我解释我的错误是什么?
【问题讨论】:
-
这完全是客户端/浏览器问题,而不是 .htaccess/RewriteRule。 浏览器 将任何相对路径解析为相对于当前 URL 路径(除非您有
base元素)。就浏览器而言,您现在位于一个名为“photos”的“目录”中,因此任何相对客户端路径都将与“photos”子目录相关。 “照片”不作为物理目录存在并不重要——浏览器/用户不知道这一点。
标签: php .htaccess mod-rewrite path