2012-02-10 42 views
2

我有一些网址,像这样的:htaccess的mod_rewrite的部分GET变量

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

谢谢。

回答

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] 
+0

如果您不关心现有查询字符串,则QSA标记不是必需的。 – ADTC 2016-12-11 08:47:58

3

您可以使用这样的事情在你的.htaccess:

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

您应该保持此规则之前一个入口点重写规则。如果规则将触发然后重写规则查找将结束(因为指定[L]选项)

,如果你想使用虚拟主机而言,这些规则