所以,我有这个.htaccess代码(我不知道它是否是写它的最好方法):
Options -Indexes
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)$ index.php?p=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)$ index.php?p=$1&$2= [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)/([^/]+)$ index.php?p=$1&$2=$3 [L]
在index.php我有这段代码加载内容:
<div id="page-wrapper">
<?
$p = ($_GET['p'] ? $_GET['p'] : 'home');
include_once('lib/'.$p.'.php')
?>
</div>
例如,当我访问www.web.com/home
时,它可以正常加载所有文件;但是当我访问www.web.com/articles/read/asd
时,所有其他文件,而不是像www.web.com/lib/pixel.png
那样加载,它们加载www.web.com/articles/lib/pixel.png
。
解决此问题的最佳方法是什么?
答案 0 :(得分:0)
所以,我解决了我的问题:我制作了这段代码:
$p = ($_GET['p'] ? $_GET['p'] : 'home');
$directory_folder = explode('/', $_SERVER['REQUEST_URI']);
$directory_folder = $directory_folder[1];
$directory_folder = ($directory_folder == $p ? '' : $directory_folder);
因此,如果我通过www.web.com/
或www.web.com/test
访问,它将返回我想要的网站目录。我只需要将/<? echo $directory_folder ?>/
添加到我的所有src和href中,但这是值得的。
感谢Mike Rockett和所有帮助我的人:)。