我在一个网站上。 URL读取类似https://somesite.com/serve
的内容
我需要告诉为我服务的页面的名称。
像index.html
,index.htm
等...
从根本上说,你找不到它是不可能的。
您想知道正在提供的文件。好吧,你可能正在使用htaccess或其他技术重写url。要告诉哪个文件可能是不可能的,只要你设法获得制作页面的框架(如果它是框架)。然后,您可以阅读文档,该文档是请求所针对的文件。大多数框架都有一个或几个这样的文件。例如,codeignighter将只有index.php,而symfony 2将有app.php和app_dev.php(如果你想要不同的环境,还有其他的)。但是,如果进行了网址重写,那么你无法知道哪个文件可以满足您的要求。
如上所述,@ Dale你也可以相信网址所说的内容。因为你不能在最后坚持一些扩展名,因为它看起来像文件。有时您最后会注意到.php或更常见的.html / .htm。
我不完全确定你的意思。但我确定你可以用$ _SERVER找到它(文档可以找到here)
祝好运
如果您只是想找出页面名称,那么您可以这样做:
<?php
$currentFile = $_SERVER["PHP_SELF"];
$parts = explode('/', $currentFile);
echo $parts[count($parts) - 1];
?>
可能那时你有一个.htaccess与rewrite rules看起来像:
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
否则你可能会有查询字符串,而它可能看起来像:
index.php?c=products&m=view&id=345
(假设服务器支持.htaccess,mod_rewrite,mod_headers)
暂时使用.htaccess RewriteRule来显示标题中的所有或匹配的文件名。
示例使用filename标记所有php文件头:
<IfModule mod_rewrite.c>
RewriteEngine on
<IfModule mod_headers.c>
RewriteRule .*\.php$ - [E=FILENAME:$0]
<FilesMatch ".php$">
Header set MY-COOL-FILENAME "filename=%{FILENAME}e"
</FilesMatch>
</IfModule>
</IfModule>
链接