htaccess目录的问题

时间:2016-01-21 04:51:45

标签: php .htaccess directory

所以,我有这个.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

解决此问题的最佳方法是什么?

1 个答案:

答案 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和所有帮助我的人:)。