当我访问某些网站时,我注意到页面上没有文件扩展名。实际上,这个网站就是一个恰当的例子。谁知道这是怎么做到的? :
答案 0 :(得分:9)
这通常使用URL Rewriting完成(链接转到一个很棒的入门教程)。
在最简单的情况下,重写规则只是通过在URL的末尾添加“.php”(或任何其他文件扩展名)来重定向每个地址。因此,如果有人试图访问http://www.yoursite.com/about-me
,他们实际上是在查看来自文件about-me.php
的内容。
答案 1 :(得分:6)
这也可能是一个MVC框架。 (在这里搜索,有很多用于php,一个着名的.NET,我相信很多语言的框架。
这个站点有一个根文件,我们称之为index.aspx(不是,但跟我一起去),那个文件有特殊的代码来读取更多的URL。如上所述与URL重写结合使用,该特殊文件接收通常为路径信息的内容并将其视为变量输入。
Possible to remove extentions on php pages?
就像是
https://stackoverflow.com/的的Index.aspx 强> /问题/ 778799 /可能去除的-一些推广-ON-PHP-页
index.aspx是通过URL重写隐藏的文件.. Questions是一个指示控制器的参数,778799是参数,而另一个文本是最终参数。 (这被忽略了)
有关详情,请参阅
答案 2 :(得分:3)
除了URL重写之外,您还可以更改apache的配置以支持替代文件扩展名,从而允许您执行类似MyPHPPage.html的操作。
的问候,
弗兰克
答案 3 :(得分:1)
使用mod_rewrite。只需将这样的代码放在你的root上名为.htaccess的文件中:
RewriteEngine on
RewriteRule ^([^/\.]+)/?([^/\.]+)/?$ index.php?resource_type=$1&id=$2 [QSA,L]
注意$ 1和$ 2如何访问正则表达式的括号部分中的两个量。从这里扩展代码似乎很容易