2016-01-21 89 views
1

所以,我有這個的.htaccess代碼(我不知道這是否是寫它的最佳方式):與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

您的網站是否生活?如果是這樣,只需發佈​​您的網站URL。因此,你可以檢查並恢復爲你 – KinjalMistry

+0

這是在本地主機上:/ –

+0

其實你的代碼是好的。我不認爲你必須面對這樣的問題。你能否更清楚你的問題?你是直接訪問圖片還是有鏈接?以及更多.. – KinjalMistry

回答

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和所有幫助我的人:)