簡體   English   中英

URL 使用 mod_rewrite in.htacess 文件更改文件夾層次結構

[英]URL folder hierarchy changes using mod_rewrite in .htacess file

我用 php 創建了一個網站,並在我的 htdocs 文件夾中寫了 .htacess 文件:

 RewriteEngine on RewriteBase / RewriteRule ^([a-zA-Z0-9]+)/?$?mainquery=$1 [QSA] RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)$?mainquery=$1&subquery=$2 [QSA]


我的意圖是重定向 url:

'/A/B' => '/?mainquery=A&subquery=B'。

如果主要查詢是一個,則一切正常。
但是當 url 有兩個查詢時,php 工作正常,但文件夾層次結構移動,因此每個圖像和 css 具有相對 url 的文件都不起作用。

它工作正常

(我正在 MAMP 上構建我的 web,所以域現在是本地主機。)

'localhost/publications/articles' => 'localhost/?mainquery=publications&subquery=articles'

, not just .但是 html 認為主要的 url 是 ,而不僅僅是

所以每個具有 src 屬性的 img 標簽

img src='圖片/myImage.jpg'

, not .不起作用,因為 html 認為圖像在中,而不是中。

css 文件也是如此。

我正在拉頭發3天,但我自己無法解決。

我怎么解決這個問題?

更改此行:

RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)$ ?mainquery=$1&subquery=$2 [QSA]

對此:

RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)$ /?mainquery=$1&subquery=$2 [QSA]

重寫的規則需要是根目錄相關的,否則它將與請求的 URL 相關,它已經在一個子文件夾中。

這就是你要問的。 如果你只是問如何指向 images/css/js root-relative,改變這個:

<img src="images/myImage.jpg" />

對此:

<img src="/images/myImage.jpg" />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM