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代码混合在一个文件中以重写用户配置文件&帖子。它失败!我该怎么办才能使它们更好地工作?
答案 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个规则合并为一个。