我正在一个网站上工作,我希望通过索引文件路由所有通信。我有一个简单的测试项目,具有以下架构:
root-
-.htaccess
-index.php
-icon.jpg
我的.htacces如下:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
这有效,现在可以访问www.mysite.com/abc/def/ghi,仍然可以看到index.php页面。
我可以使用abc / def / ghi检索$ _SERVER [' REQUEST_URI' ]
但是,我可以在index.php中说这个:
echo "<img src='icon.jpg'>";
图标不会显示,因为服务器将在以下位置搜索它:
www.mysite.com/abc/def/ghi/icon.jpg
而不是
www.mysite.com/icon.jpg
我做错了什么,怎么会专业地解决这个问题?
答案 0 :(得分:1)
简单地说,你应该使用绝对路径而不是图像的相对路径。
解决此问题的一种方法是为项目定义全局常量,例如:
define('IMAGES', 'http://website.root.domain.com'.'/images/');
OR
define('IMAGES', DOMAIN_URL.'/images/');
然后在输出代码中使用它,如:
<img src='<?php echo IMAGES;?>icon.jpg'>
输出将导致完整的&amp;不可改变的道路如:
<img src='http://website.root.domain.com/images/icon.jpg'>
请注意,我已经冒昧地假设您将图像存储在自己的个人目录中而不是主公共目录中。
答案 1 :(得分:0)
这并没有回答这个问题,但是为什么你不能创建一个404错误页面而只是设置一个重定向到索引页面?