我的问题是关于URL和Web。有时我看到URL如此: 的 www.myweb.com/user.php?name=mark 我知道这种方式你可以从数据库中获取数据,其中名称是标记并在网站上显示。
但其他方式是看到是这样的: 的 www.myweb.com/user/mark
正如我所看到的,它在用户文件夹中命名为mark的文件,然后以某种方式从数据库中显示有关名为Mark的人的所有信息,但是真正发生了什么?怎么这样做?它与XML有关吗?何时使用呢?为什么要这样使用呢?
我甚至不知道在谷歌搜索什么,所以任何链接都有帮助。
谢谢
答案 0 :(得分:1)
这是一种称为url-rewriting的常用技术,Web服务器可以执行此操作。
Wordpress执行此操作并翻译
http://example.com/2013/04/27/foo
类似
http://example.com/index.php?url=2013/04/27/foo
您可以在Wikipedia上阅读一般内容。
答案 1 :(得分:1)
user
和mark
不是“文件夹”,而只是网址的一部分。
某些Web服务器遵循约定查找文件夹/ user / mark(相对于某个根文件夹)并从那里提供文档。
但是,Web平台以不同方式解释URL变得越来越普遍。具体解释取决于具体的网络平台。
此类Web平台只是使用平台定义的约定将URL的一部分映射到服务器资源。
在ASP.Net(我最熟悉的平台)中,该映射称为routing。
ASP.NET路由使您可以使用不必映射到网站中特定文件的URL。由于URL不必映射到文件,因此您可以使用描述用户操作的URL,因此用户更容易理解。
答案 2 :(得分:0)
如果谈论常见的Apache服务器,网络服务器有一个名为.htaccess
的文件或另一个httpd.conf
能够使用Apache的内置mod_rewrite
模块进行URL重写的文件。可以使用RewriteCond
和RewriteRule
指令在这些文件中指定执行此操作的确切方法。新URI只是旧URI的别名。 (不必为给定路线提供实际文件夹)
答案 3 :(得分:0)
这是因为使用了.htaccess 这是一个删除查询字符串并生成漂亮URL的文件
示例:
RewriteEngine on
RewriteBase /
RewriteCond %{QUERY_STRING} !no-redir [NC]
RewriteCond %{QUERY_STRING} (^|&)subject=([^&]+) [NC]
RewriteRule ^(.*)/product.php$ $1/%2? [NC]
RewriteRule ^([^+\s]+)(?:[+\s]+)([^+\s]+)((?:[+\s]+).*)$ $1-$2$3 [DPI,N]
RewriteRule ^([^+\s]+)(?:[+\s]+)([^+\s]+)$ $1-$2 [R=301,DPI,L]