【问题标题】:Rewrite rule on multiple variables changing script src Path更改脚本 src 路径的多个变量的重写规则
【发布时间】:2012-08-24 02:08:20
【问题描述】:

我正在为我的网站使用重写规则,但它正在更改脚本 src 路径

这是我使用的规则

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .* - [L]
RewriteRule ^(.*)$ /user_page.php?id=$1 [NC]

# Changing Search URL
RewriteRule ^/([^/]*)/([^/]*)/([^/]*)$ search_out.php?comp_city=$1&one=$2comp_landmark=$3 [L]

# 更改搜索 URL 是导致问题的原因... 页面将向您显示脚本 src 或所有链接 rel="stylesheet" type="text/css" 指向 http://www.xxxxx.com/Rajpura/Schools/js/jquery-1.6.2.min.js 而不是 http://www.xxxxx.com/js/jquery-1.6.2.min.js

请帮忙

【问题讨论】:

    标签: php .htaccess


    【解决方案1】:

    您可以将基本标签添加到每个页面的头部标签中:

    <base href="/">
    

    这样,浏览器将在该页面中的所有链接前面加上 /。

    有关基本标签的更多信息,see documentation

    【讨论】:

    • 这与所说的有何不同?
    【解决方案2】:

    当在你的 html 中嵌入 CSS 或图像时,尝试以斜线开头以从根目录获取文件:

    <link rel="stylesheet" href="/css/style.css" />
    

    图片也一样:

    <img src="/images/pic.png" alt="image" />
    <img src="/mypic.png" alt="image" />
    

    或者一种解决方法是将其添加到您的模板中:

    <base href="/">
    

    这将强制浏览器将 /(在本例中)添加到所有相关资源链接。

    【讨论】:

    • Thx 但是还有其他出路吗?通过在 .htaccess 中进行更改... thx
    • no RewriteBase 将不起作用(因为它不是那样工作的)。您可以编写一个规则来将包含(例如)js/ 的任何内容重定向到 /js/,但我不建议您这样做,最好的方法是将 标记添加到您的页面
    • @Yazmat Thx 但是我几乎所有的链接都是 src=".. 不是 src="/ 所以还有其他方法可以做到吗?如果可能的话...
    • @Harinder :您在每个页面的 head 标签中只添加一次基本标签,而不是每个 src 或 href
    • @Yazmat Thx 伙计,它起作用了......你能把它作为一个答案,这样我就可以接受并关闭这个问题......;)
    猜你喜欢
    • 1970-01-01
    • 2015-08-26
    • 1970-01-01
    • 1970-01-01
    • 2019-03-19
    • 2012-09-09
    • 1970-01-01
    • 2014-10-27
    • 2017-11-12
    相关资源
    最近更新 更多