相对URL断开,.htaccess解决方案?

时间:2012-01-05 11:06:45

标签: .htaccess relative-path

我正在做的事情的快速摘要 - 大型网站与可怕的自定义CMS正在扩展以迎合多个城市,他们完全拒绝使用子域名,并希望有几个城市如下:

www.example.com/cityx/
www.example.com/cityy/
www.example.com/cityz/

整个CMS从根网址移动到子文件夹并为每个城市复制,该网站使用相对网址编写,例如“/css/style.css”和“/js/jquery.js”。我会单独修改每个文件,但我需要处理超过300个php文件!

.htaccess中是否有办法更改任何相对网址以转到新根目录?即将相对路径重定向到www.example.com/cityx/?

1 个答案:

答案 0 :(得分:0)

我不确定你想要达到的目标,但我知道你能做到这一点:

Options -Indexes
Options +FollowSymLinks

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^css/(.+)$ cityx/css/$1 [R=302,NC]
</IfModule>

但是,我假设您希望每个城市都有自己的css文件?在这种情况下,我很怀疑这是否可能。

我不确定你所采取的机智是否也是最好的方法。您是说通过仅为每个城市复制CMS来扩展CMS?将城市集成到CMS本身并使用htaccess将子目录(例如/ cityx / cityy)重写为相关的CMS页面(例如/index.php?city=cityx)或类似内容是不是更好。这不是您最后一次需要在CMS中更新某些内容,因此将来您所做的任何更改都必须在所有城市中进行复制。值得深思。

另外,最后想到,如果一个CMS有300个页面你必须改变只是为了改变CSS和JS文件的链接,那么它可能是一个可怕的软件!没有一个网站应该有一个以上的CSS或JS文件的引用,如果有不同的头文件或其他东西可能有两个或三个,但有300个单独的文件与这些引用是荒谬的。是时候换成更好的软件了。 :)