2010-04-03 167 views
1

全部问候,更多HtAccess重写规则

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

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

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

的网址都会改写成这样:

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

(注意/网页/文件夹是隐藏在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 

谢谢你在这里与我的超级长的问题轴承。我怎样才能做到这一点?

编辑:为了减少混淆,我将大堂上移到一个目录/ /本身。

+0

你确定mysite.com/member/lobby.php?member=pws5068变mysite.com/pws5068而不是mysite.com/member/pws5068? – 2010-04-03 20:43:30

+0

现在它只成为mysite.com/member/lobby.php?member=pws5068,但我的目标是成为mysite.com/pws5068。这个组织很差,所以我很抱歉。我正在将一个目录移动到只是/ page/ – pws5068 2010-04-03 20:45:39

回答

2

由于您访问了您的成员文件夹中的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] 
+0

实际上,我的成员文件夹中有更多文件。我打算将大厅搬到它外面,以减少混淆,因为这是唯一的情况。所以这将是/page/lobby.php和/page/member/friends.php – pws5068 2010-04-03 20:43:25

+0

我纠正了我的答案,我已经不正确地理解了一些东西。 – pixeline 2010-04-03 20:45:34