Url重写mod_rewrite

我有这样的url:

page.com/content.php?xname=p&yname=q&zid=1 

我想用apache mod_rewrite将这个url重写成如下所示:

  page.com/p/q/ 

请注意,重命名的url中不应该有“zid”参数。 我知道expression式作为GET传递到原始url。 有没有可能重新如上所述。 如果是的话,如何做到这一点?

这个对我来说工作的很好,并会重写/p/q//content.php?xname=p&yname=q&zid=1

 Options +FollowSymLinks -MultiViews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^/]+)/([^/]+)/$ content.php?xname=$1&yname=$2&zid=1 [QSA,L] 
  1. 该规则将被放置在网站根文件夹的.htaccess中。 如果放置在其他地方可能需要一些小的调整。

  2. 它不会重写,如果请求的URL是一个真实的文件或文件夹(我确定你不想重写图像或其他页面 – 我不得不添加这样的条件,因为我不知道你的网站结构是什么)。

 RewriteRule ^content\.php\?xname=(p)&yname=(q)&zid=1$ /$1/$2 [R] 

您可以尝试像[a-Z0-9 _-] +这样的表达式来匹配标识符,而不是使用p和q。

这里有一个在线测试工具: http : //civilolydnad.se/projects/rewriterule/

 RewriteEngine On RewriteRule ^/[a-z0-9]+/[a-z0-9]+/$ content.php?xname=$1&yname=$2 [L]