清理URL和获取部分名称

时间:2015-11-28 19:35:34

标签: php .htaccess

我正在清理我的网址并遇到一个问题,即获取用于确定要突出显示/显示的导航部分的部分/体育名称(例如足球)。

示例网址:

http://example.com/index.php?sports=football

htaccess的:

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f

RewriteRule ^([A-Za-z0-9-]+)/?$ index.php?sports=$1 [NC,L]

到目前为止,这么好。然后我试图获取部分名称,但它不起作用:

$url = "$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$parsed_url = parse_url($url);
parse_str($parsed_url['query'], $output); // $output['sports'];

这是因为我需要抓住地址栏中可见的网址吗?

http://example.com/football/college

如果是这样,有人可以解释处理事情的顺序(例如.htaccess,php等)吗?

1 个答案:

答案 0 :(得分:1)

您只需通过$ _GET全局数组读取查询参数即可。 因此,在您的情况下,您可以按如下方式访问它:

echo $_GET['sports'];

关于访问文件的顺序。首先,Apache将收到对公共目录中资源的请求,该目录包含.htaccess,该文件包含Apache处理该目录中文件请求的指令。

之后,Apache会发现该文件是PHP文件,因此将其交给PHP处理,脚本的输出包含在Apache提供的响应中。