重写URL时的引用

时间:2012-06-20 20:28:21

标签: css .htaccess easyphp

我想转换这样的网址 http://www.mydomain.com/it/archive.php=321123 在一个像下面这样的 http://www.mydomain.com/it/R/321123 在一本书中,我发现一些有用的东西很少有实践,我得到以下

RewriteEngine On
RewriteRule ^R/(.*) archive.php?$1 [PT]

哪个正常工作。 问题是代码中的任何引用都像

<link rel="stylesheet" type="text/css" href="css/layout.css" />

被转化为

<link rel="stylesheet" type="text/css" href="www.mydomain.com/it/R/css/layout.css" />

R文件夹在现实中不存在,因此它不包含任何css文件,所有css文件都存储在文件夹http://www.mydoman.com/it/css中。 Chrome开发者实用程序为我提供了以下信息: Resouce解释为样式表,但使用MIME类型text / html进行传输:“http://www.mydomain.com/it/R/css/style.css”。

可能会更改地址,但保留页面内原始页面的相同引用。我可以写

<link rel="stylesheet" type="text/css" href="http://www.mydomain.com/it/css/layout.css" />

但是当我使用EasyPHP离线工作时,这不起作用。

PS:我想把.htaccess文件放到http://www.mydomain.com/it文件夹中,这样它才会影响它的语言部分。

谢谢!

2 个答案:

答案 0 :(得分:2)

您可以将其添加到页面标题中:

<base href="/it/">

这应该使相对 URI路径(例如“css / layout.css”)与重写中的/R/混淆。

如果那是不可能的,你可以尝试添加额外的规则来使css工作:

RewriteRule ^R/css/(.*)$ css/$1 [L]

答案 1 :(得分:0)

假设R /之后的部分始终是数字,请尝试:

RewriteEngine On
RewriteRule ^R/([0-9]*) archive.php?$1 [PT]