URL重写以在url的开头添加目录

时间:2011-03-08 05:56:27

标签: php .htaccess

在我的网站上,所有图片/样式表都在/ CMS / ...目录中。最近,我们的网站转移到新服务器的临时网址,他们引用了/ newdirectory / CMS /...

我们如何将/ newdirectory /追加到所有/ CMS /来电?

3 个答案:

答案 0 :(得分:11)

.htaccess 文件

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/newdirectory/CMS/
RewriteRule ^(.*)$ /newdirectory/CMS/$1

这将执行重写,因此访问 http://www.server.com/CMS/index.html 实际上将提供 http://www.server的内容。 COM / newdirectory / CMS / index.html中

注意:此解决方案假定CMS是此域的唯一服务。

如果此域的服务超过CMS(并且只应重定向CMS),则以下内容可能会更好:

RewriteEngine On
RewriteCond %{REQUEST_URI} ^/CMS/
RewriteRule ^(.*)$ /newdirectory/$1

答案 1 :(得分:4)

您不需要RewriteRule(或mod_rewrite)。您可以使用简单的RedirectMatch:

RedirectMatch ^/CMS/(.*) http://tempserver.com/newdirectory/CMS/$1

答案 2 :(得分:1)

我建议使用mod_rewrite,大多数apache / linux服务器都有。在您网站的docroot中创建一个名为.htaccess的文件,其内容为:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^/CMS/(.*)$      /newdirectory/CMS/$1    [QSA]
</IfModule>

此方法将使其对最终用户透明,不会影响当前的pagerank,SEO等值,并且将保留所有入站链接。