2014-02-18 44 views
1

我们从www.oursite.com/ 富可视 /页改变目录的名称...到www.oursite.com/ 视图 /页...我们保留旧的,但希望推动人们到新的网址。如何在不使用webconfig或htaccess的情况下将每个页面重新写入/重定向到新位置(无权添加或更改)。我在所有页面中都使用include语句。我假设这将是重写和正则表达式。重定向网页到一个新的目录名称,而不使用webconfig或htaccess的

例子:

www.oursite.com/infocus/1.aspx -goes to- www.oursite.com/view/1.aspx

www.oursite.com/infocus/2.aspx -goes to- www.oursite.com/view/2.aspx

www.oursite.com/infocus/3.aspx -goes to- www.oursite.com/view/3.aspx

回答

2

我知道你已经接受一个答案,但最好的方式做这将是一个301永久重定向。一个简单的方法是:

C#

<% if (Request.Url.PathAndQuery.StartsWith("/infocus/")) { 
     Response.StatusDescription = "Moved Permanently" ; 
     Response.StatusCode = 301; 
     Response.AddHeader("Location", "http://yourdomain" + Request.Url.PathAndQuery.Replace("/infocus/","/view/")); 
} %> 

VB

<% 
    If (Request.Url.PathAndQuery.StartsWith("/infocus/")) Then 
     Response.StatusDescription = "Moved Permanently" 
     Response.StatusCode = 301 
     Response.AddHeader("Location", "http:/yourdomain" + Request.Url.PathAndQuery.Replace("/infocus/", "/view/")) 
    End If 
%> 

能刚落,在主网页代码前面。你可以做一些小的mod,使它更安全一些,并处理安全/不安全的模式。

+0

比我的更好的解决方案 – mplungjan

+0

其实我得到的错误是结束语句是必需的。 编译器错误消息:BC30081:'If'必须以匹配'End If'结尾。 源错误: 1号线:<%,如果(Request.Url.PathAndQuery.StartsWith( “/富可视/”)){ – RooksStrife

+0

原谅我,因为我不熟悉这个代码。我有一个.aspx页面,它正在引入一个include(也是aspx)。当我将VB代码放入包含中时,什么都没有发生。该页面不重定向。 – RooksStrife

2

试试这个

<script> 
    var loc=location.href; 
    if (loc.indexOf("/infocus/")!=-1) 
    location.replace(loc.replace("/infocus/","/view/")); 
</script> 
+0

砸 - 作品!感谢您的简单修复。 – RooksStrife

+0

不客气。请[接受](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)回答 – mplungjan

+0

@mplungjan这会工作,但301会更好。 – MikeSmithDev

相关问题