2011-08-26 108 views
2

我有网址,如:URL重写mod_rewrite的

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

我想使用Apache的mod_rewrite重写此网址到类似:

page.com/p/q/ 

笔记不应该有 'ZID' 参数重命名的网址。我知道表达式作为GET传递到原始URL中。 是否可以重新命名如上。如果是的话,如何实现这一目标?

回答

2

这一个工作正常,我和将改写请求/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是一个真实的文件或文件夹(我确定你不想重写图像或其他页面,我不得不添加这样的条件,因为我不知道你是什么网站结构是)。

0
RewriteEngine On 
RewriteRule ^/[a-z0-9]+/[a-z0-9]+/$ content.php?xname=$1&yname=$2 [L] 
1
RewriteRule ^content\.php\?xname=(p)&yname=(q)&zid=1$ /$1/$2 [R] 

相反p和q,你可以尝试像[A-Z0-9 _-] +匹配标识符的表情。

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

+0

当我写的东西是这样的: 重写规则^事件/(即[az] +)/([0-9] +)/ $ x.php X = $ 16 即使我已经进入网址:event/p/6 /。 它被重命名为x.php?x = p 我想要的是x.php?x = 6 – akashr