htaccess mod_rewrite部分url到GET变量

时间:2012-02-10 14:35:13

标签: php apache .htaccess mod-rewrite

我有一些这样的网址:

  • http://plutov.by/post/cubique_zf_jquery
  • http://plutov.by/post/mysql_useful_queries

我怎样才能在Apache mod_rewrite的帮助下打开下一页?

  • http://plutov.by/post/main?title=cubique_zf_jquery
  • http://plutov.by/post/main?title=mysql_useful_queries

此外,这个新的重写规则是否适用于“一个入口点重写”?

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]

感谢。

2 个答案:

答案 0 :(得分:3)

你可以在你的.htaccess中使用这样的东西:

RewriteRule ^post/(.*)$ post/main?title=$1 [L]

您应该在一个入口点重写规则之前保留此规则。如果规则将触发,则将完成重写规则查找(因为指定了[L]选项)

如果要在VirtualHost上下文中使用这些规则,可能需要对路径进行一些修改

答案 1 :(得分:3)

要使新的重写规则适用于“一个入口点重写”,请让rewriteRules像这样:

当您添加新的查询字符串时,QSA标志是必需

RewriteEngine On

RewriteRule ^(post)/([\w\d\-]+)/?$ $1/main?title=$2 [QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule . index.php [L]