我怎样用php修改网址或部分网址?我丢失了我用过的代码,现在我在网上找不到答案。我知道使用header('Location: www.site.com')会得到重定向,但我怎么能只显示假网址?我现在不想使用mod_rewrite。
header('Location: www.site.com')
im9ewurl1#
这在PHP中是不可能的,因为PHP是在服务器端执行的。你对url所做的任何改变都会触发页面加载。我认为这在javascript中是可行的,但我真的怀疑这是不是一个好主意,如果你只想在用户地址栏中重写一个url,你就做错了,或者说做得不好;)
wkyowqbh2#
您实际上所要求的在使用PHP时是不可能的(尽管在JavaScript中您可以使用dreadful hashbang或支持较差的出血边缘pushState)。然而,在对另一个答案的评论中,你说你的目标实际上是没有mod_rewrite的友好URI。这不是关于显示一个与真实的URI不同的URI,而是关于创建一个不基于简单的文件和目录集的URI。这通常是通过mod_rewrite实现的(在PHP中),所以您应该坚持使用这种方法。但是,您可以使用ScriptAlias来完成(假设您使用Apache,其他Web服务器可能有不同的方法)。例如Apache配置中的ScriptAlias /example /var/www/example.php。然后在PHP脚本中读取$_SERVER['REQUEST_URI']以找出所请求的内容并拉入适当的内容。
ScriptAlias /example /var/www/example.php
$_SERVER['REQUEST_URI']
dpiehjr43#
您可以通过在php脚本名称后添加目录来创建一些SEO友好的URL,这样您的URL就变成:http://yoursite.com/script.php/arg1/arg2在脚本.php中:
<?php $args = preg_split('#/#', $_SERVER['PATH_INFO']); echo "arg1 = ".$args[1].", arg2 = ".$args[2]."\n"; ?>
如果你使用更多的htaccess技巧,那么你可以让script.php看起来像别的东西(见@大卫的回答)
omvjsjqw4#
你可以试试,file_get_contents("https://website.com");这不是要重定向,而是要触发API,您可以通过为上述函数分配一个变量来捕获输出。
file_get_contents("https://website.com");
4条答案
按热度按时间im9ewurl1#
这在PHP中是不可能的,因为PHP是在服务器端执行的。你对url所做的任何改变都会触发页面加载。
我认为这在javascript中是可行的,但我真的怀疑这是不是一个好主意,如果你只想在用户地址栏中重写一个url,你就做错了,或者说做得不好;)
wkyowqbh2#
您实际上所要求的在使用PHP时是不可能的(尽管在JavaScript中您可以使用dreadful hashbang或支持较差的出血边缘pushState)。
然而,在对另一个答案的评论中,你说你的目标实际上是没有mod_rewrite的友好URI。这不是关于显示一个与真实的URI不同的URI,而是关于创建一个不基于简单的文件和目录集的URI。
这通常是通过mod_rewrite实现的(在PHP中),所以您应该坚持使用这种方法。
但是,您可以使用ScriptAlias来完成(假设您使用Apache,其他Web服务器可能有不同的方法)。
例如Apache配置中的
ScriptAlias /example /var/www/example.php
。然后在PHP脚本中读取
$_SERVER['REQUEST_URI']
以找出所请求的内容并拉入适当的内容。dpiehjr43#
您可以通过在php脚本名称后添加目录来创建一些SEO友好的URL,这样您的URL就变成:
http://yoursite.com/script.php/arg1/arg2
在脚本.php中:
如果你使用更多的htaccess技巧,那么你可以让script.php看起来像别的东西(见@大卫的回答)
omvjsjqw4#
你可以试试,
file_get_contents("https://website.com");
这不是要重定向,而是要触发API,您可以通过为上述函数分配一个变量来捕获输出。