Mod rewrite 创建用户/搜索引擎友好的URL

Mod rewrite 创建用户/搜索引擎友好的URL,mod-rewrite,url-rewriting,Mod Rewrite,Url Rewriting,我想创建一个类似www.facebook.com/username的url,就像facebook那样。我们可以用mod_rewrite来做吗。Username是表中用户的名称。它不是一个子目录。请告知。当然,mod_rewrite可以做到这一点。下面是一个例子。是的,你可以做到这一点,但要让它正常运行,你可能会遇到一些初始障碍 首先,您必须使用正则表达式来匹配它。如果你不知道正则表达式,那么一开始这可能会让人困惑 第二个问题是,您需要考虑到,如果您要重写域上的顶部路径,那么您必须有一些机制,仅当

我想创建一个类似www.facebook.com/username的url,就像facebook那样。我们可以用mod_rewrite来做吗。Username是表中用户的名称。它不是一个子目录。请告知。

当然,mod_rewrite可以做到这一点。下面是一个例子。

是的,你可以做到这一点,但要让它正常运行,你可能会遇到一些初始障碍

首先,您必须使用正则表达式来匹配它。如果你不知道正则表达式,那么一开始这可能会让人困惑

第二个问题是,您需要考虑到,如果您要重写域上的顶部路径,那么您必须有一些机制,仅当文件不存在时才进行重写

我想如果mod_rewrite支持测试url是否指向真实的文件,那将很容易。如果没有,你可能不得不使用一个不会重写的单词黑名单,因为你需要保留一些单词

这至少包括包含您的图像、css、js等的文件夹和您的站点运行的index.php,以及您正在使用的任何其他php文件

我想提供更多帮助,但我是一个.net的人,我通常会帮助解决asp.net url重写问题,比如URLRewiter.net库,它们的配置与mod_rewrite不同

要匹配用户名,我将使用如下正则表达式:

^/(\w*)/?$
然后,这将把括号中的位放入一个变量中,您可以像重写一样使用该变量

/index.php?profileName={0}
我提供的regex是指:

  • ^在此之前什么都没有
  • /正斜杠
  • (\w*)任意数量的字母或数字
  • /??可选正斜杠
  • 这之后什么都没有