我有以下网址:
page.com/content.php?xname=p&yname=q&zid=1
我想使用apache mod_rewrite将此url重写为类似:
page.com/p/q/
注意重命名的url中不应该有'zid'参数。我知道表达式作为GET传递到原始URL中。 是否可以按上述方式重命名。如果是,如何实现这一目标?
答案 0 :(得分: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]
此规则将放在网站根文件夹中的.htaccess中。如果放在其他地方,可能需要进行一些小的调整。
如果请求的URL是真实的文件或文件夹,它将不会重写(我确定你不想重写图像或其他一些页面 - 我不得不添加这样的条件,因为我不知道是什么您的网站结构是)。
答案 1 :(得分:1)
RewriteRule ^content\.php\?xname=(p)&yname=(q)&zid=1$ /$1/$2 [R]
您可以尝试像[a-Z0-9 _-] +这样的表达式来匹配标识符,而不是p和q。
这里有一个在线测试工具:http://civilolydnad.se/projects/rewriterule/
答案 2 :(得分:0)
RewriteEngine On
RewriteRule ^/[a-z0-9]+/[a-z0-9]+/$ content.php?xname=$1&yname=$2 [L]