我正在使用以下mod_rewrite规则:
**RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}.php -f
RewriteRule ^(.*)$ $1.php [L]**
获取干净的网址,例如
www.myweb.com/login
这
www.myweb.com/login.php
我正在使用其他重写规则
**RewriteRule ^itemdetail/([0-9]+)/?$ itemdetail.php?itemid=$1 [NC,L]**
获取
www.myweb.com/itemdetail/100008
来自
www.myweb.com/itemdetail?itemid=100008.
这很好但有一个问题。此重写规则在每个链接上添加子域。例如。如果到css文件的链接是text.css,那么这个css文件的链接是itemdetail / text.css。主页链接现在是www.myweb.com/itemdetail/home而不是www.myweb.com/home。我在这做错了什么。请帮忙。
答案 0 :(得分:0)
此重写规则在每个链接上添加子域。例如。如果到css文件的链接是text.css,那么这个css文件的链接是itemdetail / text.css。主页链接现在是www.myweb.com/itemdetail/home而不是www.myweb.com/home。我在这里做错了什么。
您可以执行以下两项操作之一,将其添加到itemdetail.php
页面的标题中(<head> </head>
标记内):
<base href="/">
或者您可以通过添加前导/
来更改您的css链接从相对URL到绝对URL,例如:
<link rel="stylesheet" href="/text.css" type="text/css">
否则,您可以尝试添加重写规则来取消写入css链接,但这通常是一个非常糟糕的主意,因为当您故意使用它们时它会破坏子目录中的css:
RewriteRule ^itemdetail/(.*?)\.css$ /$1.css [L]