[英]Why is my php file unable to locate external files (image,css…) when using RewriteRule?
我正在使用以下RewriteRules:
RewriteRule ^([a-zA-Z0-9]+)$ page.php?p=$1
RewriteRule ^e/([a-zA-Z0-9]+)$ edit.php?p=$1
第一個工作正常:在鍵入mysite.com/id時,它將在服務器端加載mysite.com/page.php?p=id。
第二個也可以正常工作:當我鍵入mysite.com/e/id時,它會加載mysite.com/edit.php?p=id(如預期的那樣)。 但是在那種情況下,edit.php無法定位任何外部文件,例如我的css文件。
<link rel="stylesheet" type="text/css" href="style.css" />
在執行以下任一操作時:
<link rel="stylesheet" type="text/css" href="../style.css" />
或簡單地刪除RewriteRule中的目錄,如:
RewriteRule ^e_([a-zA-Z0-9]+)$ edit.php?p=$1
它解決了這個問題。
現在,我什至不明白為什么我的edit.php無法定位外部文件,甚至認為它已加載到服務器端(mysite.com/)的正確路徑上,而不像url顯示在額外目錄中(在本例中為mysite) .com / e /)。
您可以為網站的所有路徑使用基本網址,如下所示:
<base href="http://yoursite.com/blog/" />
要么
<base href="/blog/" />
然后從基地的寫相對路徑:
<a href="rule/foo/">...</a>
另外,您必須格外小心那些“全部接受”模式,因為如果使用不當,它們可能會與樣式表,圖像和其他媒體沖突。 可以在模式上添加擴展名或排除媒體都是可能的修復方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.