如何发送不存在显式文件的网页

时间:2017-09-27 08:07:45

标签: php wordpress drupal server mediawiki

当一个URL用于不存在的目录/文件时,如MediaWiki,Drupal,Wordpress等CMS如何显示正确的页面。

澄清一下,如果我转到网址https://en.wikipedia.org/wiki/Example,维基百科的服务器/维基/示例上没有目录,而是MediaWiki从数据库中的模板和信息等创建页面。我在问CMS是怎么做的“劫持”该目录/文件的请求,以便将其自己的页面发回而不是404.

我问到关于php的问题,这就是我正在使用的内容以及大多数CMS似乎主要基于的内容。

2 个答案:

答案 0 :(得分:0)

基本概念非常简单:

  1. 使用custom 404代替默认
  2. 动态生成内容based on the entered url

答案 1 :(得分:0)

Web服务器(即Apache,Nginx ...)有可能捕获请求的URL并将其转换为其他URL,其他URL。最常见的方法是使用放置在站点根目录中的.htaccess文件。在某些系统中,默认情况下会隐藏以点(“。”)开头的文件,因此您必须启用某些内容才能看到它们。

它包含规则(以及其他内容)如何识别某些路线或路线集以及如何处理它们。

即。你有“虚拟”路径,如:

/event/32

您将创建一个规则来捕获以“/ event /”开头的每个路径,并在此之后捕获部分(“32”)而不是打开不存在的目录,它将调用一些脚本,如:

 /event.php?event_id=32

因此捕获的参数已作为get参数“event_id”发送到event.php脚本。

对于此搜索/替换和捕获路径部分,使用正则表达式。

你有许多在线教程如何做到这一点,只为他们谷歌:

https://www.addedbytes.com/blog/url-rewriting-for-beginners

https://mediatemple.net/community/products/dv/204643270/using-htaccess-rewrite-rules

https://help.dreamhost.com/hc/en-us/articles/215747748-How-can-I-redirect-and-rewrite-my-URLs-with-an-htaccess-file-

...

主服务器配置位于其他服务器目录中,很可能只能由服务器管理员访问。但是这个.htaccess文件是一种允许“普通用户”进行一些配置更改的方法,它只适用于放置该文件的目录及其子目录。

但你也可以用.htaccess文件做很多其他的事情,即发送一些头参数,允许/禁止访问某些文件/目录,设置一些简单的登录机制(密码保护)等等...... / p>