在 PHP 中更改 URL 格式

Changing URL format in PHP

我想更改此格式

 http://mysite.tld/go.php?id=20 

 http://mysite.tld/20

如何使用 PHP 实现此目的?

您希望您的服务器处理此问题,而不是 PHP。

如果您的服务器支持 .htaccess 文件,您可以创建它并添加:

RewriteEngine On
RewriteRule ^([^/]*)$ /go.php?id= [L]

这将允许您访问

example.com/20 但被调用的页面将是 go.php?id=20

在你的 Root/.htaccess 文件中试试这个:

RewriteEngine On
RewriteCond %{THE_REQUEST} /go\.php\?id=([^\s]+) [NC] 
RewriteRule ^ /%1? [NC,R,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ go.php?id= [QSA,L,NC]

如之前的答案所述,通常的方法是通过 .htaccess 文件使用 Apache's Rewrite Engine

如果您正在寻找 PHP 特定的解决方案:

  1. 将所有传入请求重定向到单个 PHP 页面。
  2. 在这个页面,首先检索使用预定义的$_SERVER数组输入的URL,不包括基数URL。 ($_SERVER["HTTPS"],$_SERVER['HTTP_HOST'],$_SERVER['REQUEST_URI'])
  3. 完成后,使用适当的 Regex 将 URL 拆分为键值对。 ('@/@')
  4. 将键映射到存储页面引用的数组的键。
  5. 使用值的 POST 或 GET 参数重定向到此页面。