使用PHP重定向,而不是在Cpanel中重定向

使用PHP重定向,而不是在Cpanel中重定向,php,redirect,Php,Redirect,也许这个问题以前有人问过,但我似乎找不到满意的答案 我的网站有以下URL: mywebsite.com/profile.php?id=abc mywebsite.com/profile.php?id=xyz mywebsite.com/profile.php?id=mno 我想创建重定向,以便任何人谁会进入这个网址 mywebsite.com/abc will redirect to mywebsite.com/profile.php?id=abc mywebsite.com/xyz will

也许这个问题以前有人问过,但我似乎找不到满意的答案

我的网站有以下URL:

mywebsite.com/profile.php?id=abc
mywebsite.com/profile.php?id=xyz
mywebsite.com/profile.php?id=mno
我想创建重定向,以便任何人谁会进入这个网址

mywebsite.com/abc will redirect to mywebsite.com/profile.php?id=abc
mywebsite.com/xyz will redirect to mywebsite.com/profile.php?id=xyz
mywebsite.com/mno will redirect to mywebsite.com/profile.php?id=mno
我希望在浏览器的地址栏中输入mywebsite.com/abc并更改为mywebsite.com/profile.php?id=abc的URL,或者保留mywebsite.com/abc


我知道如何使用Cpanel中的Redirects工具来实现这一点,但是使用PHP和/或PDO来实现这一点比手动创建每一个都要高效得多。

如果您想从PHP重定向,可以使用标题。例如,在mywebsite.com/abc中创建index.php,其中包含

<?php
header("Location: http://mywebsite.com/profile.php?id=abc");
exit;
?>

我知道您要求一种php方法来实现这一点,但您可以使用.htaccess规则轻松实现,您可以添加一条规则,它将适用于您的所有URL:

RewriteEngine On
RewriteRule ^([^/]*)$ /profile.php?id=$1 [L]
这将实现您想要的:

mywebsite.com/mno将重定向到mywebsite.com/profile.php?id=mno mywebsite.com/abc将重定向到mywebsite.com/profile.php?id=abc mywebsite.com/xyz将重定向到mywebsite.com/profile.php?id=xyz
mywebsite.com/mno将重定向到mywebsite.com/profile.php?id=mno

您不需要手动创建每个文件。可能会有帮助。他会遇到的问题是,在尝试使用重写规则进行自动化时,很难区分这些链接和任何其他页面链接。所以我只将您的代码添加到我的.htaccess中?如果我想让URL永久保留在我的浏览器中,比如mywebsite.com/mno,而不是mywebsite.com/profile.php,该怎么办?id=mnoCorrect只需将它放在you.htaccess文件中。它将作为mywebsite.com/mno保留在您的浏览器中。profile.php将与profile.php?id=mno一样解释变量