如何判断哪个页面为我服务?

问题描述 投票:1回答:6

我在一个网站上。 URL读取类似https://somesite.com/serve的内容

我需要告诉为我服务的页面的名称。

index.htmlindex.htm等...

php javascript browser dns
6个回答
4
投票

从根本上说,你找不到它是不可能的。


1
投票

您想知道正在提供的文件。好吧,你可能正在使用htaccess或其他技术重写url。要告诉哪个文件可能是不可能的,只要你设法获得制作页面的框架(如果它是框架)。然后,您可以阅读文档,该文档是请求所针对的文件。大多数框架都有一个或几个这样的文件。例如,codeignighter将只有index.php,而symfony 2将有app.php和app_dev.php(如果你想要不同的环境,还有其他的)。但是,如果进行了网址重写,那么你无法知道哪个文件可以满足您的要求。


如上所述,@ Dale你也可以相信网址所说的内容。因为你不能在最后坚持一些扩展名,因为它看起来像文件。有时您最后会注意到.php或更常见的.html / .htm。


0
投票

我不完全确定你的意思。但我确定你可以用$ _SERVER找到它(文档可以找到here

祝好运


0
投票

如果您只是想找出页面名称,那么您可以这样做:

<?php
$currentFile = $_SERVER["PHP_SELF"];
$parts = explode('/', $currentFile);
echo $parts[count($parts) - 1];
?>

0
投票

可能那时你有一个.htaccessrewrite rules看起来像:

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

否则你可能会有查询字符串,而它可能看起来像:

index.php?c=products&m=view&id=345

0
投票

(假设服务器支持.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>

链接

Setting a filename inside the header with htaccess

View HTTP headers in Google Chrome?

© www.soinside.com 2019 - 2024. All rights reserved.