我有网址,如:URL重写mod_rewrite的
page.com/content.php?xname=p&yname=q&zid=1
我想使用Apache的mod_rewrite重写此网址到类似:
page.com/p/q/
笔记不应该有 'ZID' 参数重命名的网址。我知道表达式作为GET传递到原始URL中。 是否可以重新命名如上。如果是的话,如何实现这一目标?
我有网址,如:URL重写mod_rewrite的
page.com/content.php?xname=p&yname=q&zid=1
我想使用Apache的mod_rewrite重写此网址到类似:
page.com/p/q/
笔记不应该有 'ZID' 参数重命名的网址。我知道表达式作为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]
此规则将被放置在.htaccess在网站根目录。如果放置在其他地方可能需要一些小的调整。
如果请求的URL是一个真实的文件或文件夹(我确定你不想重写图像或其他页面,我不得不添加这样的条件,因为我不知道你是什么网站结构是)。
RewriteEngine On
RewriteRule ^/[a-z0-9]+/[a-z0-9]+/$ content.php?xname=$1&yname=$2 [L]
RewriteRule ^content\.php\?xname=(p)&yname=(q)&zid=1$ /$1/$2 [R]
相反p和q,你可以尝试像[A-Z0-9 _-] +匹配标识符的表情。
有一个在线测试工具,在这里:http://civilolydnad.se/projects/rewriterule/
当我写的东西是这样的: 重写规则^事件/(即[az] +)/([0-9] +)/ $ x.php X = $ 16 即使我已经进入网址:event/p/6 /。 它被重命名为x.php?x = p 我想要的是x.php?x = 6 – akashr