某些网站如何在地址栏中不显示页面扩展名?

时间:2014-01-13 13:48:58

标签: url web

这只是出于好奇的问题。

我看过很多网站没有在地址栏中显示页面类型/扩展名。例如,stackoverflow的提问题页面的地址为stackoverflow.com/questions/ask,而不是类似于stackoverflow.com/questions/ask.php

他们是否使用某些东西来隐藏该页面扩展名?或者为什么我看不到页面扩展名?

我认为这对于页面安全性是一个很好的想法。

4 个答案:

答案 0 :(得分:0)

使用.htaccess文件,你可以这样做

这里的类似内容Remove .php extension with .htaccess

答案 1 :(得分:0)

.htaccess(超文本访问)文件是由多个Web服务器支持的目录级配置文件,允许分散管理Web服务器配置。它们被放置在Web树中,并且能够覆盖服务器的全局配置的子集,以及它们所在的目录以及所有子目录。

htaccess file

Rewrite Guides

More htaccess tips and tricks

重写网址

服务器经常使用.htaccess将长而过于全面的URL重写为更短,更难忘的URL。

授权,身份验证 .htaccess文件通常用于指定目录的安全限制,因此文件名为“access”。 .htaccess文件通常附带.htpasswd文件,该文件存储有效的用户名及其密码

鉴于上面的三个链接,可以更好地解释你。

答案 2 :(得分:0)

您看到的所有.htaccess个答案都适用于传统的 PHP应用程序,因为它们都作为普通文件上传到网络服务器的文档根目录。这意味着每个PHP文件都可以浏览"直接,假设您未在网络服务器配置中阻止此操作。

StackOverflow(这是一个.NET应用程序)和其他现代应用程序使用URL映射范例 - 这不仅有助于"清理"网址,也是因为cool URIs don't change。它与安全性没有任何关系。

因此,每个URL很可能映射到一个函数,此函数返回一个发送到浏览器的响应。

PHP框架提供的相同 - Laravel routingsymfony routingzend framework routing都是此映射范例的示例。

答案 3 :(得分:-1)

这是通过使用.htaccess文件来配置网站的详细信息

来完成的

示例:

RewriteEngine on
Rewrite Base /
RewriteRule ([a-z]+)/?$ index.php?menu=$1 [NC,L]

此示例将一个类似于www.mydomain.com/home的网址重写为www.mydomain.com?index.php&menu=home

了解更多详情,请搜索stackoverflow / google