我正在清理我的URL,在获取用于确定要突出显示/显示导航的哪个部分的部分/运动名称(例如足球)时遇到问题。
示例URL:
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'];
这是因为我需要获取地址栏中可见的URL吗?
http://example.com/football/college
如果是的话,有人能解释一下处理事物的顺序吗(例如.htaccess、php等)?
您可以通过$_GET全局数组读取查询参数。因此,在您的情况下,您可以按如下方式访问它:
echo $_GET['sports'];
关于访问文件的顺序。首先,Apache会收到一个对公共目录中资源的请求,该目录包含.htaccess,该文件包含Apache处理该目录中文件请求的指令。
之后,Apache会发现该文件是PHP文件,因此它将其交给PHP处理,脚本的输出包含在Apache提供的响应中。