我用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&安培;子查询= B'。
如果主要查询是一个,一切正常 但是当url有两个查询时,php工作正常,但文件夹层次结构会移动,所以每个带有相对url的图像和css文件都不起作用。
它工作正常
(我正在MAMP上构建我的网站,所以域名现在是localhost。)
'localhost / publications / articles'=> '本地主机/ mainquery =出版物&安培;子查询=篇'
但是html认为主网址是'localhost / publications',而不仅仅是'localhost /'。
所以每个img标签都有src属性,如
img src ='images / myImage.jpg'
不起作用,因为html认为图像在'localhost / publications / images /'中,而不是'localhost / images /'。
css文件也是如此。
我把头发拉了3天,但我自己也解决不了。
我该如何解决这个问题?
答案 0 :(得分: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]
重写的规则需要是root-relative,否则它将相对于请求的URL,它已经在子文件夹中。
我认为这就是你所要求的。如果您只是询问如何指向images / css / js root-relative,请更改:
<img src="images/myImage.jpg" />
对此:
<img src="/images/myImage.jpg" />