Php 如何隐藏静态页面?

Php 如何隐藏静态页面?,php,Php,我得到了3个静态页面,例如 proposal.test.com/seo proposal.test.com/ppc proposal.test.com/design 我检查了服务器中的那些目录,它们的索引没有动态变化,都是纯htm文件 给我的指令是,对任何与数据库中随机url不匹配的人隐藏这些url 如果用户键入了proposal.test.com/seo,则不应显示页面,如果用户 键入类似于proposal.test.com/seo/a13sdfa和a13sdfa的内容与数据库中的密钥匹配,

我得到了3个静态页面,例如

proposal.test.com/seo
proposal.test.com/ppc
proposal.test.com/design
我检查了服务器中的那些目录,它们的索引没有动态变化,都是纯htm文件

给我的指令是,对任何与数据库中随机url不匹配的人隐藏这些url

如果用户键入了proposal.test.com/seo,则不应显示页面,如果用户 键入类似于proposal.test.com/seo/a13sdfa和a13sdfa的内容与数据库中的密钥匹配,这是proposal.test.com/seo页面显示的唯一时间

那么我该如何在PHP中实现这一点呢?因为所有3个目录都由纯静态页面组成


我已经完成了密钥的创建,我只想知道如何通过附加一个给定的随机密钥并检查它是否存在于数据库中来隐藏这些页面。

您应该使用
mod_rewrite
(在Apache web服务器的情况下)并将
/a13sdfa
的重写设置为
?key=a13sdfa
之类的内容。此外,您还应该在所有静态文件中包含一些PHP代码,以检查密钥的有效性。

您应该使用
mod_rewrite
(对于Apache web服务器),并将
/a13sdfa
的重写设置为类似
?key=a13sdfa
的内容。此外,您还应该在所有静态文件中包含一些PHP代码,以检查密钥的有效性。

由于页面从未被视为PHP,因此您不能使用PHP阻止访问

您可以通过配置web服务器来阻止访问,例如使用
.htaccess
文件


如果您以正常方式阻止访问,您可以使用PHP在特定条件下允许访问文件

由于页面从未被视为PHP,因此不能使用PHP阻止访问

您可以通过配置web服务器来阻止访问,例如使用
.htaccess
文件


如果您以正常方式阻止访问,您可以使用PHP在特定条件下允许访问文件

如何:将静态文件移到公用文件夹之外,这样就不能直接访问它们;将所有请求重定向到一个php文件(您可以使用apache的重写引擎),该文件将在数据库中查找访问的url/键,并返回相应文件的
文件\u get\u内容

下面是一个.htaccess文件的示例:

RewriteEngine on
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ /index.php
它的作用如下:如果请求的文件在磁盘上不存在(作为文件或目录),它将重定向到
/index.php
。在这里,您应该具有呈现所需页面的逻辑。
如果您不知道服务器将把slug放在哪个变量中,只需从index.php内部执行
打印($\u server)
即可找到它。

如何:将静态文件移到公用文件夹之外,这样就无法直接访问它们;将所有请求重定向到一个php文件(您可以使用apache的重写引擎),该文件将在数据库中查找访问的url/键,并返回相应文件的
文件\u get\u内容

下面是一个.htaccess文件的示例:

RewriteEngine on
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ /index.php
它的作用如下:如果请求的文件在磁盘上不存在(作为文件或目录),它将重定向到
/index.php
。在这里,您应该具有呈现所需页面的逻辑。
如果您不知道服务器将把slug放在哪个变量中,只需从index.php内部执行
打印($\u server)
即可找到它。

有两种方法可以解决此问题

1) (我的首选)使用.htaccess仅在页面与.htaccess中的regex givin匹配时显示页面

2) 在PHP(您的实际问题)中,从URL获取slug,查询到数据库,如果得到结果,则显示它。否则,从php发送404头

假设如下:您有一个启用mod_rewrite的Apache Web服务器(如果您不确定,请检查php信息)。您的虚拟主机允许覆盖(AllowVeride All)

.htacces

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)  index.php?check=$1 [QSA,L,t]

如果服务器上存在该文件或目录,它将显示该页面。因此,它将显示seo、设计等。否则,它将重定向到index.php,并将其slug作为名为$check的参数。使用此变量,查询数据库,检查te结果并重定向到所需页面。

有两种方法可以解决此问题

1) (我的首选)使用.htaccess仅在页面与.htaccess中的regex givin匹配时显示页面

2) 在PHP(您的实际问题)中,从URL获取slug,查询到数据库,如果得到结果,则显示它。否则,从php发送404头

假设如下:您有一个启用mod_rewrite的Apache Web服务器(如果您不确定,请检查php信息)。您的虚拟主机允许覆盖(AllowVeride All)

.htacces

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)  index.php?check=$1 [QSA,L,t]

如果服务器上存在该文件或目录,它将显示该页面。因此,它将显示seo、设计等。否则,它将重定向到index.php,并将其slug作为名为$check的参数。使用此变量,查询数据库,检查te结果并重定向到所需页面。

请原谅这个问题,为什么会这样?我以前从没听说过…那是家庭作业吗?您尝试了什么,哪里失败了?您使用的是什么web服务器?抱歉,这不是一个家庭作业,这是一个与工作相关的任务,我只是不知道如何将随机键附加到静态页面url并通过php检查:(@sasori出于个人好奇,我可以问你这个系统的用途吗?对不起,为什么会这样?我以前从没听说过这个…是家庭作业吗?你尝试了什么,哪里失败了?你使用的是什么web服务器?对不起,这不是家庭作业,这是一项与工作相关的任务,我只是不知道如何将随机密钥附加到静态页面url,并通过php进行检查:(@sasori出于个人好奇,我可以问你这个系统的目的是什么吗?你能给我一个在htaccess文件中放置什么的示例,以便重写例如/a23吗