我有一个网址,看起来像:
url.com/picture.php?id=51
我将如何将该URL转换为:
picture.php/Some-text-goes-here/51
我认为WordPress也是一样。
如何使用PHP创建友好的URL?
您基本上可以通过以下两种方式执行此操作:
.htaccess在您的根文件夹中添加一个名为的文件,并添加以下内容:
.htaccess
RewriteEngine on RewriteRule ^/?Some-text-goes-here/([0-9]+)$ /picture.php?id=$1
这将告诉Apache为该文件夹启用mod_rewrite,并且如果询问它与正则表达式匹配的URL,它将在 内部 将其重写为所需的内容,而最终用户看不到它。简单但不灵活,因此,如果您需要更多功能,请执行以下操作:
将以下内容放在您的.htaccess文件中:(请注意斜杠)
FallbackResource /index.php
这将告诉它为您index.php通常无法在您的站点中找到的所有文件运行。然后,您可以在其中例如:
index.php
$path = ltrim($_SERVER['REQUEST_URI'], '/'); // Trim leading slash(es) $elements = explode('/', $path); // Split path on slashes if(empty($elements[0])) { // No path elements means home ShowHomepage(); } else switch(array_shift($elements)) // Pop off first item and switch { case 'Some-text-goes-here': ShowPicture($elements); // passes rest of parameters to internal function break; case 'more': ... default: header('HTTP/1.1 404 Not Found'); Show404Error(); }
这是大型站点和CMS系统执行此操作的方式,因为它在解析URL,配置和数据库相关的URL等方面提供了更大的灵活性。对于零星使用,使用硬编码的重写规则.htaccess会很好。