HTACCESS:如何屏蔽重定向的URL并在URL栏中保留“友好”URL

时间:2015-03-08 23:14:02

标签: php apache .htaccess mod-rewrite redirect

我有一个完美的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栏中?我已经在网上研究了其他的例子,我很难过。

1 个答案:

答案 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]

让我知道这对您有何影响。