RewriteRule深层的多个文件夹

时间:2012-03-26 18:28:34

标签: mod-rewrite rewrite

所以我有网址localhost/parent/admin/news/edit/2,我想重写它以运行localhost/parent/admin/news/edit.php?id=2。我查看的大多数RewriteRule示例(例如this one)使用以下内容来捕获域之后的重写:

RewriteRule    ^products/([0-9]+)/?$    show_a_product.php?product_id=$1    [NC,L]

然而,据我所知^表示字符串的开头,因为我的前锋远远超出了开始,所以它不起作用。因此,我想出了以下内容:

RewriteRule    edit/([0-9]+)$    edit.php?id=$1    [NC,L]

从逻辑上讲,我认为它应该可行,我使用the RegExr test来试用它并且该服务同意。但是,当我向前转添加R标志时,似乎规则将页面指向localhost/C:/xampp/htdocs/parent/edit.php?id=2,我可以从中推测出两个问题:

  1. 它转发到我的计算机上的文件而不是localhost服务器(触发禁止访问!)
  2. 它一起切断了news/部分。
  3. 希望有人可以帮助我解决这个问题,因为我花了几个小时愚弄不同的组合无济于事。

    编辑:我应该补充一点,我想要捕获编辑/#的原因是因为会有多个部分带有编辑/#并且我想用一个规则捕获它们而不是写多个每个部分的具体规则。

1 个答案:

答案 0 :(得分:0)

以下是应该起作用的:

RewriteRule /parent/admin/news/edit/([0-9]+)$ /parent/admin/news/edit.php?id=$1 [NC,QSA,L].