2009-08-17 29 views
0

當我嘗試使用圖像標記顯示圖像時,顯示圖像時出現問題。現在圖像在項目/圖像/標誌。我正在顯示圖像的頁面位於project/projectadmin/file.php中。使用htaccess的圖像顯示中的問題

圖像路徑如下給出http://localhost/project/images/logo/cat_149.jpg。當我刪除htaccess,然後顯示圖像沒有問題。另外,當我使用這樣的圖像路徑http://localhost/project/projectadmin/images/logo/cat_149.jpg移動圖像到項目/ projectadmin/images/logo /,沒有問題來顯示圖像。

我的問題是什麼?

RewriteEngine On 
ReWriteBase /project 
RewriteRule ^(cat|Home|index.htm|)$ index.php [L,NC] 
RewriteRule ^signin/(.*)$ Login.php?a=$1 [L,NC] 
RewriteRule ^create_account/(.*)/(.*)$ createacc.php?v1=$1&v2=$2 [L,NC] 
RewriteRule ^signup/(.*)$ createacc.php?var1=$1&var2=$1&var3=signup [L,NC] 
RewriteRule ^myhope/(.*)$ home.php?var11=$1 [L,NC] 
RewriteRule ^edit_account/(.*)$ edit_account.php?var12=$1 [L,NC] 
RewriteRule ^edit_account_ship_pr edit_account_ship.php [L,NC] 
RewriteRule ^edit_account_b/(.*)$ editacc.php?action=$1 [L,NC] 
+1

什麼是在htaccess文件? – 2009-08-17 04:32:28

回答

0

很可能你.htaccess文件使用類似mod_rewrite的東西來rewrite_urls。然後,當你去抓圖像時,它會將該URL重寫爲類似PHP文件的內容。

自己轉到IMG地址,看看會發生什麼。你可能也不會看到一個圖像。

可能最簡單的解決方法是檢查文件是否存在。如果是這樣,不要重定向。這樣做有:

RewriteCond %{SCRIPT_FILENAME} -f 
RewriteCond %{SCRIPT_FILENAME} -d 

所以,你的.htaccess文件看起來像

RewriteEngine On 
ReWriteBase /project 

RewriteCond %{SCRIPT_FILENAME} -f 
RewriteCond %{SCRIPT_FILENAME} -d 

RewriteRule ^(cat|Home|index.htm|)$ index.php [L,NC] 
RewriteRule ^signin/(.*)$ Login.php?a=$1 [L,NC] 
RewriteRule ^create_account/(.*)/(.*)$ createacc.php?v1=$1&v2=$2 [L,NC] 
RewriteRule ^signup/(.*)$ createacc.php?var1=$1&var2=$1&var3=signup [L,NC] 
RewriteRule ^myhope/(.*)$ home.php?var11=$1 [L,NC] 
RewriteRule ^edit_account/(.*)$ edit_account.php?var12=$1 [L,NC] 
RewriteRule ^edit_account_ship_pr edit_account_ship.php [L,NC] 
RewriteRule ^edit_account_b/(.*)$ editacc.php?action=$1 [L,NC] 

注意,將允許獲得直接任意PHP文件,但是這不應該的問題考慮不這樣做首先有任何障礙阻止這一點。

+0

是的,我甚至無法上傳圖片。那麼解決方案是什麼? 謝謝Chacha102 – user75472 2009-08-17 05:03:54

+0

非常感謝Chacha102!我真的很抱歉,我忘了添加行RewriteRule^image viewpic.php [L,NC]。實際上它不允許顯示圖像。但是我知道了RewriteCond,謝謝你,再次抱歉。 – user75472 2009-08-17 08:19:56