【问题标题】:More HtAccess Rewrite Rules更多 HtAccess 重写规则
【发布时间】:2011-02-04 01:56:06
【问题描述】:

大家好,

我需要帮助结合一些 htaccess 重写,这些疯狂的正则表达式让我头疼。

所以我有一个类似这样的文件夹结构:

     /www/mysite.com/page/member/friends.php
     /www/mysite.com/page/video/videos.php
     /www/mysite.com/page/messages/inbox.php

URL 被重写为:

     mysite.com/member/friends.php
     mysite.com/video/videos.php
     mysite.com/messages/inbox.php

(请注意 /page/ 文件夹隐藏在 url 中,但我将其保留在服务器上以便更好地组织文件)

重写规则看起来像这样:(我是新手,如果有缺陷,请纠正我)

     RewriteRule ^video/(.*)$ /page/video/$1 [NC]
     RewriteRule ^member/(.*)$ /page/member/$1 [NC]
     RewriteRule ^messages/(.*)$ /page/messages/$1 [NC]

现在,我还需要对成员文件夹中名为 lobby.php 的文件进行完全不同的重写:

在原来的重写后,一个示例 url 看起来像:

     mysite.com/member/lobby.php?member=pws5068

我需要一个新的重写让它看起来像这样:

     mysite.com/pws5068

感谢您在这里接受我的超长问题。我怎样才能做到这一点?

编辑:为了减少混乱,我将大厅从目录上移到 /page/ 本身。

【问题讨论】:

  • 您确定 mysite.com/member/lobby.php?member=pws5068 变为 mysite.com/pws5068 而不是 mysite.com/member/pws5068?
  • 现在它只变成了 mysite.com/member/lobby.php?member=pws5068,但我的目标是让它变成 mysite.com/pws5068。这组织得不好,所以我很抱歉。我正在将大厅向上移动一个目录到 /page/

标签: .htaccess mod-rewrite friendly-url seo


【解决方案1】:

由于您访问成员文件夹中的 2 个文件,因此您应该在 url 结构中区分它们。例如:

 RewriteRule ^member/friends/(.*)$ /page/member/friends.php?id=$1 [NC]
 RewriteRule ^member/(.*)$ /page/member/lobby.php?id=$1 [NC]

更新

根据您的编辑,现在应该是

 RewriteRule ^member/friends/(.*)$ /page/member/friends.php?id=$1 [NC]
 RewriteRule ^member/(.*)$ /page/lobby.php?id=$1 [NC]

【讨论】:

  • 实际上,我的会员文件夹中确实有更多文件。我将把大厅移到它之外以减少混乱,因为它是一个独特的案例。所以它将是 /page/lobby.php 和 /page/member/friends.php
  • 我更正了我的答案,我理解错误。
猜你喜欢
  • 2015-02-15
  • 2017-11-21
  • 2021-02-09
  • 2013-06-29
  • 1970-01-01
  • 1970-01-01
  • 2013-12-26
  • 1970-01-01
相关资源
最近更新 更多