mod_rewrite的部分url为GETvariables

我有这样的url:

  • 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] 

谢谢。

要使新的重写规则与“一个入口点重写”工作,有这样的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] 
  • 标记QSA Apache文档
  • !-l检查请求的URI不是一个象征性的墨迹。

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

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

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

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