使用正则表达式进行htaccess重定向

时间:2012-05-16 06:26:53

标签: regex .htaccess mod-rewrite redirect

我的.htaccess文件包含以下内容

RewriteCond %{HTTP_HOST} ^www\.mydomain\.org\.in [NC]
RewriteRule ^(.*)$ http://mydomain.org.in/$1 [R=301,L]

我将整个网站移动到子文件夹,现在网页中没有任何css和js文件加载。任何人都可以告诉我这个正则表达式意味着什么或为什么会发生这种情况?

注意:我从我的老年人那里继承了这个网站:P

2 个答案:

答案 0 :(得分:1)

它只是将任何请求重定向到www.mydomain.org.in/...mydomain.org.in/...;即它从前面剥离www。但是,如果您只是将资源文件移动到子目录中,这应该不会导致资源文件中断,假设您已经移动它们(尽管您应该将.htaccess文件保留在原来的位置)。

听起来HTML中的CSS / JS文件链接可能会被破坏,可能是因为它们使用绝对URI(相对于域根而不是当前URI)。请先尝试检查它们。

答案 1 :(得分:0)

正如Will所解释的那样.htaccess不是问题。您的JS和CSS位置不是相对提及的,因此当源文件的位置发生变化时,浏览器无法找到它们,因此页面不会呈现。

但是,您可以尝试以下.htaccess代码以及您所拥有的代码,并查看它是否链接到文件。

RewriteRule ^(.+)\.css$ http://mydomain.org.in/folder/$1.css [R=302,NC]
RewriteRule ^(.+)\.js$ http://mydomain.org.in/folder/$1.js [R=302,NC]

以上代码将对css和js文件的调用重定向到域中的子文件夹。将folder更改为您将所有内容移至的文件夹。