dsa45664 2014-05-03 17:11
浏览 46
已采纳

在新的重写URL中删除不需要的Get参数

I have the following .htaccess-file:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule ((^((/)*admin(/)+).*)|(^admin$)) $0 [NS]
    RewriteRule ^((?!\.).)*$ "system/scripts/startPageProcess.php?slug=$0" [NS]
</IfModule>

If theres a URL called starting with "admin/" or being equal to "admin", there should be no redirection. If the URL is differend, startPageProcess.php should be called with the URL as the "slug"-Get-Parameter (for example "asdf" redirects to "system/scripts/startPageProcess.php?slug=asdf"). This works so far.

Now there is the following problem: If I call "admin", there is no redirection - so far, so good - but the URL shown in the browser changes to: "admin/?slug=admin" and I have no idea why.

I'm really not an .htaccess-expert, so I don't know why this happens, how you can fix this, or if you could make the whole thing easier. So please help.

  • 写回答

2条回答 默认 最新

  • doudian6229 2014-05-03 17:22
    关注

    Have your rules like this:

    <IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteRule ^admin(/.*)?$ - [L]
        RewriteRule ^([^./]+)/?$ system/scripts/startPageProcess.php?slug=$1 [L,QSA]
    </IfModule>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?