Mod_rewrite and $_GET variables

二次信任 提交于 2019-12-04 03:57:03

问题


If I am mod_rewriting a URL from:

http://www.mysite.com/blog/this-is-my-title/1/

to

http://www.mysite.com/blog.php?title=this-is-my-title&id=1

...is it possible then to arbitrarily attach a get value on to the URL later, or does the mod_rewrite throw it off?

MY REWRITE RULE:

RewriteRule    ^blog/([A-Za-z]+)/(0-9]+)/?    blog?title=$1&id=$2     [L]

EXAMPLE:

can i go http://www.mysite.com/blog/this-is-my-title/1/?first=Johnnie&last=Wiggles

which would essentially mean

http://www.mysite.com/blog.php?title=this-is-my-title&id=1&first=Johnnie&last=Wiggles

I would think that should work, but for some reason it's not for me at the moment.


回答1:


You can add QSA to the RewriteRule flags:

RewriteRule page_([0-9]+)\.html page.php?id=$1 [QSA]

Will redirect page_1.html?a=2 to page.php?id=1&a=2

However, be careful because requesting page_1.html?id=2 will redirect to page.php?id=1&id=2, and (in PHP), $_GET['id'] will be 2.




回答2:


It's possible to append it, with the QSA (query string append) flag.

RewriteEngine on
RewriteRule {from-url} {to-url} [L,NC,QSA]


来源:https://stackoverflow.com/questions/1498966/mod-rewrite-and-get-variables

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!