我想转换这样的网址 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文件夹中,这样它才会影响它的语言部分。
谢谢!
答案 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]