如果所有 CMS(Drupal、MediaWiki)只是后台 PHP 或 ASP 的集合,那么它们如何在没有扩展名或任何东西的情况下显示www.example.com/directory/或www.example.com/File_name的页面?
这是一些 .HTACCESS 配置吗?Python?珀尔?这有什么办法?
我怎么能为我的服务器/网站做到这一点?(不使用CMS?)
如果所有 CMS(Drupal、MediaWiki)只是后台 PHP 或 ASP 的集合,那么它们如何在没有扩展名或任何东西的情况下显示www.example.com/directory/或www.example.com/File_name的页面?
这是一些 .HTACCESS 配置吗?Python?珀尔?这有什么办法?
我怎么能为我的服务器/网站做到这一点?(不使用CMS?)
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 脚本或处理程序。
DirectoryIndex
如果您使用的是 Apache,请查看指令以更改为目录显示的默认文件。
CMS 倾向于使用URL 重写来获得用户友好的 URL,而不必在 URI 上具有文档 ID。
大多数网络服务器都有重写引擎。这些允许您在内部或外部将某些请求重写/重定向到其他 URL。
对于 Apache,有mod_rewrite 模块或提供类似功能的AcceptPathInfo
指令。