mod_rewrite / p / about => ?P =约

时间:2012-04-03 22:52:41

标签: php mod-rewrite

我有一个关于mod_rewrite的具体问题:

当用户致电时:

  

www.test.com/p/about

网络服务器应该在内部调用

  

www.test.com/?p=about

访问网站的子页面。

但是在地址栏中它仍应该说

  

www.test.com/p/about

无论如何可以使用mod_rewrite吗?

我的解决方案没有成功:

  1. 尝试

      

    RewriteRule ^ /?([ - a-zA-Z0-9 _ +] +)$ index.php?p = $ 1 [L]

  2.      错误的效果,因为它只适用于:test.com/about,但我需要test.com/p/about!

    1. 尝试

        

      RewriteRule ^ p /([a-zA-Z] +)$ index.php?p = $ 1

    2.      错误:它重定向正确,但html文件上的路径是错误的:例如。 /img/pic.png现在是/p/img/pic.png

      非常感谢, 扁钢

1 个答案:

答案 0 :(得分:2)

是的,这可以使用mod_rewrite:

RewriteRule ^p/([a-zA-Z]+)$ index.php?p=$1

或者,更一般地说:

RewriteRule ^([a-zA-Z]+)/([a-zA-Z]+)$ index.php?$1=$2

请参阅:http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriterule