PHP如何更改URL
我试图使用PHP将div中的所有动态URL更改为不同的静态URL 例如,我有:PHP如何更改URL,php,url-rewriting,parse-url,Php,Url Rewriting,Parse Url,我试图使用PHP将div中的所有动态URL更改为不同的静态URL 例如,我有: <div class="mydiv"> <a href="http://oldsite.com/123">Title 123</a> <a href="http://oldsite.com/321">Title 321</a> <a href="http://oldsite.com/abc">Title abc</a>
<div class="mydiv">
<a href="http://oldsite.com/123">Title 123</a>
<a href="http://oldsite.com/321">Title 321</a>
<a href="http://oldsite.com/abc">Title abc</a>
<a href="http://oldsite.com/cba">Title cba</a>
</div>
我想把它们全部改为:
<div class="mydiv">
<a href="http://newsite.com">Title 123</a>
<a href="http://newsite.com">Title 321</a>
<a href="http://newsite.com">Title abc</a>
<a href="http://newsite.com">Title cba</a>
</div>
我知道我可以用htaccess来做这件事,但如果可能的话,我更愿意用PHP来做。有什么想法吗
编辑:oldsite.com链接是从RSS源生成的,正在嵌入到页面中。我希望所有RSS标题链接只将用户发送到新网站主页。
<?php str_replace( 'http://oldsite.com/', 'http://newsite.com/', $content );?>
str_replace需要3个参数。第一个是你想要改变的(针),第二个是你想要改变的,第三个是你正在寻找的(干草堆)
也可以使用内联三元运算符:
<?php($link==$old_link)? 'http://newsite.com/': 'http://oldsite.com/';?>
str_replace需要3个参数。第一个是你想要改变的(针),第二个是你想要改变的,第三个是你正在寻找的(干草堆)
也可以使用内联三元运算符:
<?php($link==$old_link)? 'http://newsite.com/': 'http://oldsite.com/';?>
您可以使用正则表达式执行此操作:
$content = preg_replace("|http://oldsite.com(/([^'"]*)?)?|msi", "http://newsite.com", $content);
这将更改所有以
http://oldsite.com
至http://newsite.com
您可以使用正则表达式执行此操作:
$content = preg_replace("|http://oldsite.com(/([^'"]*)?)?|msi", "http://newsite.com", $content);
这将更改所有以
http://oldsite.com
至http://newsite.com
PHP可以在HTML输出中用另一个字符串替换字符串,是的,但这并不意味着这是一个好主意。表面上看,这似乎完全达到了您想要的效果,但会以微妙的方式中断(在搜索引擎蜘蛛抓取网站的情况下),这会中断希望URL保持不变的现有客户端
不要试图用PHP比HTTP更聪明,只要使用HTTP就可以了。如果您有权访问oldsite.com
的服务器,并且该服务器的所有链接都必须重定向到位于newsite.com
的新服务器的相同URL路径,则使用您的web服务器以HTTP/1.0 301永久移动的响应和位置通知客户端:http://newsite.com/foo-bar-baz
标题
这将通知您网站的所有HTTP客户端可以在新地址找到旧内容,并通知客户端更新其书签并使其缓存位置和其他存储信息无效mod_rewrite
使这在Apache中变得非常简单,但如果您必须使用PHP,那么作为最后手段,请使用它的header()
函数发送与mod_rewrite
相同的HTTP头。PHP可以在HTML输出中用另一个字符串替换字符串,是的,但这并不意味着这是个好主意。表面上看,这似乎完全达到了您想要的效果,但会以微妙的方式中断(在搜索引擎蜘蛛抓取网站的情况下),这会中断希望URL保持不变的现有客户端
不要试图用PHP比HTTP更聪明,只要使用HTTP就可以了。如果您有权访问oldsite.com
的服务器,并且该服务器的所有链接都必须重定向到位于newsite.com
的新服务器的相同URL路径,则使用您的web服务器以HTTP/1.0 301永久移动的响应和位置通知客户端:http://newsite.com/foo-bar-baz
标题
这将通知您网站的所有HTTP客户端可以在新地址找到旧内容,并通知客户端更新其书签并使其缓存位置和其他存储信息无效mod_rewrite
使这在Apache中变得非常简单,但如果您必须使用PHP,那么作为最后手段,请使用它的header()
函数发送与mod_rewrite
相同的HTTP头。我不理解这个问题。str\u replace( 'http://oldsite.com/', 'http://newsite.com/',$content)
您可以创建一个变量并在需要时更改该变量。$URL='';然后echo'';这是您的意思还是我完全误解了?我想他指的是用PHP重写URL,而不是实际替换HTML代码。首先查看创建动态URL的代码会有所帮助……如果您尝试使用的是PHPnipulate给我们一个提示,告诉我们你在使用什么,而不是最终的html。我不理解这个问题。stru'http://oldsite.com/', 'http://newsite.com/',$content)
您可以创建一个变量并在需要时更改该变量。$URL='';然后echo'';这是您的意思还是我完全误解了?我想他指的是用PHP重写URL,而不是实际替换HTML代码。首先查看创建动态URL的代码会有所帮助……如果您尝试使用的是PHPnipulate给我们一个提示,告诉我们你正在使用什么,而不是最终的html.hm,它似乎不太管用。我更新了描述以添加更多信息,如果帮助看起来不管用的话。我更新了描述以添加更多信息,如果有帮助的话