小编典典
您基本上可以通过以下两种方式执行此操作:
.htaccess路由与mod_rewrite
.htaccess在您的根文件夹中添加一个名为的文件,并添加以下内容:
RewriteEngine on
RewriteRule ^/?Some-text-goes-here/([0-9]+)$ /picture.php?id=$1
这将告诉Apache为该文件夹启用mod_rewrite,并且如果询问它与正则表达式匹配的URL,它将在 内部
将其重写为所需的内容,而最终用户看不到它。简单但不灵活,因此,如果您需要更多功能,请执行以下操作:
PHP路线
将以下内容放在您的.htaccess文件中:(请注意斜杠)
FallbackResource /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会很好。
2020-05-26