Mod rewrite URL重写问题未加载.css
我正在将一个旧站点移植到一个新模板,并且Windows 2008重写模块出现问题。我试图重写的链接如下所示:Mod rewrite URL重写问题未加载.css,mod-rewrite,url-rewriting,Mod Rewrite,Url Rewriting,我正在将一个旧站点移植到一个新模板,并且Windows 2008重写模块出现问题。我试图重写的链接如下所示: http://ltweb2008.serveronline.net/product.php?pID=75 而且页面显示得很好。然后我应用新的URL,它加载正确的内容,但不再加载模板的style.css文件 http://ltweb2008.serveronline.net/product/75/any-text-here 问题似乎在于,制作模板(canvas)的公司将主.css文件放在根
http://ltweb2008.serveronline.net/product.php?pID=75
而且页面显示得很好。然后我应用新的URL,它加载正确的内容,但不再加载模板的style.css文件
http://ltweb2008.serveronline.net/product/75/any-text-here
问题似乎在于,制作模板(canvas)的公司将主.css
文件放在根目录中,但将所有其余文件加载到/css中。现在,我无法使用“重写”命令加载主.css
文件,当我将其向下移动到/css时,它只显示一个空白页面,尽管当我签出页面源代码时,它都在那里
使用此选项,页面显示但未使用style.css(带重写):
使用这些选项中的任何一个,页面都是完全空白的(重写):
或
或
^product/([0-9]+)/([^/]+)$
以及重写URL:
/product.php?pID={R:1}
有人知道我错过了什么吗
一个解决方案是使用绝对路径(ex/css,或/js,而不仅仅是css/,/js),但这看起来不是一个可靠的解决方案,因为我们必须在所有文件上更改它
这是因为您的相对URI的基已更改。最初,当页面为/product.php?id=75
时,基为/
,浏览器使用/
基正确填充相对链接。但当浏览器转到类似/product/75/此处任何文本的页面时,基突然变为/produ>ct/
并尝试将其附加到所有相关URL之前,因此不会加载任何URL
您可以将链接设置为绝对链接,也可以更改页面标题中的URI基(在
标记之间):
一个解决方案是使用绝对路径(ex/css,或/js,而不仅仅是css/,/js),但这看起来不是一个可靠的解决方案,因为我们必须在所有文件上更改它
这是因为您的相对URI的基已更改。最初,当页面为/product.php?id=75
时,基为/
,浏览器使用/
基正确填充相对链接。但当浏览器转到类似/product/75/此处任何文本的页面时,基突然变为/produ>ct/
并尝试将其附加到所有相关URL之前,因此不会加载任何URL
您可以将链接设置为绝对链接,也可以更改页面标题中的URI基(在
标记之间):
也许你需要一件事,也许两者都需要,我没有测试,但这为我解决了问题:
1.)在页面加载中添加此项:
Page.Header.DataBind()
'是必需的,因为在页面上运行AjaxControlToolkit
时,页眉中有
代码块(似乎只有页眉导致了这一点)。这就是打破它的原因,直到我们放入这个,放入英镑,而不是=登录html
2.)将其添加到ASPX中:
也许你需要一件事,也许两者都需要,我没有测试,但这为我解决了问题:
1.)在页面加载中添加此项:
Page.Header.DataBind()
”是必需的,因为在页面上运行AjaxControlToolkit
时,页眉中有
代码块(似乎只有页眉会导致这种情况)。这就是破坏它的原因,直到我们在html中放入这个,并放入英镑而不是=符号
2.)将其添加到ASPX中:
<base href="/">