如何使用mod_rewrite重写URL以保留URL的某些部分并删除其他部分

时间:2017-06-13 11:08:26

标签: .htaccess mod-rewrite url-rewriting

我使用URL重写来保留URL的某些部分,并使用位于我的localhost/test文件夹中的.htaccess文件中的这个简单代码删除其他部分:

RewriteRule ^remove/(.+)$ $1 [NC]
RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule .* echo.php?final_url=$0

现在,当我将其应用于网址时:localhost/test/remove/keep/我得到的final_url参数包含keep/keep而不是预期的keep

以下是我理解重写过程的方法:

  1. 首次重写运行:我的网址重新归结为localhost/test/keep/(因为它与第一条规则模式相匹配)而不是匹配第二条规则及其条件,因此重新编写为:localhost/test/echo.php?final_url=keep/

  2. 现在第二次重写运行:第一个规则模式不再匹配(因为它不会以remove /开头),所以第二个规则(现在请注意URL指向现有文件:echo.php )所以改写应该结束

  3. 请纠正我的想法并详细解释究竟发生了什么

0 个答案:

没有答案