我有一个完美的RewriteRule。 url格式,为简单起见使用aaa,bbb和ccc,root是' aaa'在我的localhost上,[[SOME NUMBER]]和[[SOME OTHER NUMBER]]只是代表任意长度的整数,是:
aaa/bbb.php?bbb_id=[[SOME NUMBER]]#ccc.php?ccc_id=[[SOME OTHER NUMBER]]
我从这个"友好"网址格式:
aaa/bbb[[SOME NUMBER]]/ccc[[SOME OTHER NUMBER]]
...使用这个完美的重写规则:
RewriteRule ^aaa([0-9-]+)/bbb([0-9-]+)/?$ /aaa.php?aaa_id=$1#bbb.php?bbb_id=$2 [NE]
(注意我需要[NE]因为URL中的#。)
所以:
aaa/bbb8/ccc232
...变成/重定向到:
aaa/bbb.php?bbb_id=8#ccc.php?ccc_id=232
这完美无缺。但是什么是RewriteCond可以让友好的"重定向发生后,URL是否保留在URL栏中?我已经在网上研究了其他的例子,我很难过。
答案 0 :(得分:0)
您需要将[L]
添加到重写规则中,以便在匹配后停止处理。它应该执行内部重定向,您可以在地址栏中使用aaa/bbb8/ccc232
。
RewriteRule ^aaa([0-9-]+)/bbb([0-9-]+)/?$ /aaa.php?aaa_id=$1#bbb.php?bbb_id=$2 [NE,L]
让我知道这对您有何影响。