0

私はphpでWebサイトを作成し、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'。

メインクエリが1つである場合、すべてが正常に機能します。
ただし、URLに2つのクエリがある場合、phpは正常に機能しますが、フォルダー階層が移動するため、相対URLを持つすべての画像とcssファイルが機能しません。

それはうまくいきます

(私はMAMPでWebを構築しているので、ドメインはローカルホストになりました。)

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

しかし、htmlは、メインURLが「localhost/」だけでなく「localhost/publications」であると見なします。

したがって、次のようなsrc属性を持つすべてのimgタグ

img src ='images / myImage.jpg'

htmlは、画像が「localhost / images /」ではなく、 localhost / publications / images /」にあると見なすため、機能しません。

cssファイルもそうです。

3日間髪を引っ張っていますが、自分では解決できません。

どうすればこの問題を解決できますか?

4

1 に答える 1

1

この行を変更します。

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" />
于 2012-04-07T04:16:35.783 に答える