0

我用 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]


我的意图是重定向网址:

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

如果主查询是一个,一切正常。
但是当 url 有两个查询时,php 可以正常工作,但是文件夹层次结构会移动,因此每个具有相对 url 的图像和 css 文件都不起作用。

它工作得很好

(我正在 MAMP 上构建我的网站,因此域现在是 localhost。)

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

但 html 认为主要 url 是'localhost/publications',而不仅仅是'localhost/'

所以每个具有 src 属性的 img 标签

img src='图像/myImage.jpg'

不起作用,因为 html 认为图像在'localhost/publications/images/'中,而不是'localhost/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 相关,该 URL 已经在子文件夹中。

这就是你要问的。如果你只是问如何指向 images/css/js root-relative,改变这个:

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

对此:

<img src="/images/myImage.jpg" />
于 2012-04-07T04:16:35.783 回答