0

如果所有 CMS(Drupal、MediaWiki)只是后台 PHP 或 ASP 的集合,那么它们如何在没有扩展名或任何东西的情况下显示www.example.com/directory/www.example.com/File_name的页面?

这是一些 .HTACCESS 配置吗?Python?珀尔?这有什么办法?

我怎么能为我的服务器/网站做到这一点?(不使用CMS?)

4

5 回答 5

6

你在URL 重写之后。它使网络服务器能够显示既不直接映射到文件系统中存在的内容也不映射到特定动态内容处理程序(这两种通常是提供内容的标准方式)的 URL 的内容。

于 2009-01-11T15:16:50.110 回答
2

Web 服务器只是一种侦听传入请求的软件,当它收到请求时,它会发回某种响应。

传统上,服务器(例如提供普通 HTML 文件的 Apache / IIS)会查看传入的请求,在其本地文件系统上找到相应的文件(例如 /home/about.html,它们会在文件夹中查找名为about.html ),并将该文件的内容发送回发出请求的客户端。这是快速、轻量级且非常容易实现的——但这只是构建 Web 服务器的一种可能方式。大多数 Web 服务器都提供了覆盖这种行为的能力,并对传入的请求做一些更智能的事情。

您需要做的是配置您的 Web 服务器本身(IIS、Apache、lighttpd 等)以将请求定向到特定脚本或资源。

在 Windows 上的 IIS 中,有两种方法可以实现这一点。

第一个是配置 IIS“自定义错误”功能并将 404 错误页面映射到 /MyCms/FindPage.asp - 这意味着任何时候客户端请求实际不存在的页面,您的 Web 服务器将运行该页面代替 ASP 页面,然后在该页面中,您可以提取原始请求 URL (/home/info/events.html),在数据库或其他东西中查找它,然后返回它。客户将不知道发生了这种情况。

对于更强大的替代方案,您可以按照olle的帖子中的建议使用通配符应用程序映射 - 这会将每个请求(不仅仅是“未找到”的请求)映射到您的 CMS 脚本或处理程序。

于 2009-01-11T15:24:27.083 回答
1

DirectoryIndex如果您使用的是 Apache,请查看指令以更改为目录显示的默认文件。

CMS 倾向于使用URL 重写来获得用户友好的 URL,而不必在 URI 上具有文档 ID。

于 2009-01-11T15:14:45.980 回答
1

没有扩展名的路径是您在网络服务器级别设置的。在 IIS 中,您可以使用通配符应用程序映射。基本上,所有请求都会转到您指定的 ISAPI 扩展。在 Apache 中你可以使用 Roland 他的建议。

大多数这些类型的应用程序还使用一种称为URL 重写的概念,以便在前端显示不同的 URL,然后是由 Web 服务器实际处理的 URL。

于 2009-01-11T15:20:17.670 回答
1

大多数网络服务器都有重写引擎。这些允许您在内部或外部将某些请求重写/重定向到其他 URL。

对于 Apache,有mod_rewrite 模块或提供类似功能的AcceptPathInfo指令。

于 2009-01-11T15:24:34.947 回答