httacces冲突重写用户的个人资料和用户的帖子

时间:2016-11-07 00:39:42

标签: .htaccess url mod-rewrite

1)我有一个重写用户个人资料的htaccess。

http://example.com/account.php?p=profile&username=Ernest 

http://example.com/Ernest

下一个代码:

RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ account.php?p=profile&username=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ account.php?p=profile&username=$1

效果很好......

2)下一个用于重写用户帖子的httaccess

 http://example.com/account.php?p=post&id=12345678

http://example.com/post?id=12345678

适用于下一个httaccess

RewriteRule ^post$ account.php?p=post [QSA] 

3)每个人都很好地孤立,但目前我想将两个htaccess代码混合在一个文件中以重写用户配置文件&帖子。它失败!我该怎么办才能使它们更好地工作?

1 个答案:

答案 0 :(得分:0)

您应该在另一个规则之前有post规则,并且在其他所有将跳过文件和目录的规则之前都有排除规则。

RewriteEngine On

# skip all files and directories from rewrite rules below
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]

RewriteRule ^post/?$ account.php?p=post [L,NC,QSA]

RewriteRule ^([\w.-]+)/?$ account.php?p=profile&username=$1 [L,QSA]

另请注意,在正则表达式中使用/?$,您可以将2个规则合并为一个。