Mod rewrite URL重写问题未加载.css

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文件放在根

我正在将一个旧站点移植到一个新模板,并且Windows 2008重写模块出现问题。我试图重写的链接如下所示:

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="/">