我有一个带有动态网址的网站(www.abc.com/profile.php?u=me),其中GET变量“u”指向当前查看的用户(即我)。我希望重写的URL看起来像这样www.abc.com/me。 当我使用URL生成器时,这是我最常得到的:
RewriteRule profile/u/(.*)/ profile.php?u=$1
RewriteRule profile/u/(.*) profile.php?u=$1
指向www.abc.com/profile/u/me,此页面不包含css文件。 我需要像www.abc.com/me这样的网页的css文件。
答案 0 :(得分:0)
尝试此规则:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ profile.php?u=$1 [NC,L]
这会将example.com/user
重写为example.com/profile.php?u=user
。
为什么css文件没有加载?
这是因为您的相对URI的基数已更改。最初,当页面为/
时,基数为/profile.php?u=user
,浏览器会正确填充/
基础的相对链接。但是当浏览器转到/user
这样的页面时,基础突然变为/user/
,它会尝试将其附加到所有相对URL之前,因此它们都不会加载。
<强>解决方案强>
您可以将链接设为绝对,也可以更改网页标题中的URI基数(在<head> </head>
标记之间):
<base href="/">