我尝试创建这样的搜索引擎友好URL;
RewriteRule ^m/([0-9]+)$ my.php?id=$1
但是,它获取没有 CSS 的页面。
如果我这样写:
RewriteRule ^([0-9]+)$ my.php?id=$1
它毫无问题地获取带有CSS的页面。
我该如何解决?
当你像这样编写CSS引用时:
<link rel="stylesheet" type="text/css" href="style.css">
这是一个相对网址。在http://example.com/
上,它指向http://example.com/style.css
,但在http://example.com/my/1
上,它指向不存在的http://example.com/my/style.css
。
使用绝对 URL 可以解决此问题:
<link rel="stylesheet" type="text/css" href="/style.css">
在每个页面的 head 标签中添加 base
属性来解决此问题:
<base href="http://www.example.com/" />
或在 CSS 之前添加/
。
<link rel="stylesheet" type="text/css" href="/stylesheet.css">
发生的事情是,当您重定向页面时,它也在my/css
中查找 css,而不是css
添加上述内容将解决此问题。