2009-09-30 2 views
4

Если я mod_rewriting в URL из:

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

в

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

... возможно, то произвольно прикрепить значение приобретают на URL-адрес позже, или mod_rewrite отключает его?

МОЙ REWRITE ПРАВИЛО:

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

Пример:

могу я пойти http://www.mysite.com/blog/this-is-my-title/1/?first=Johnnie&last=Wiggles

, который по существу будет означать

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

Я думаю, что Shou ld work, но почему-то это не для меня на данный момент.

+1

Не могу ответить на этот вопрос, не глядя на ваш RewriteRule. –

+0

теперь добавлено ... извинения – johnnietheblack

ответ

9

Вы можете добавить QSA к RewriteRule флагов:

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

перенаправит page_1.html?a=2 на page.php?id=1&a=2

Однако, будьте осторожны, потому что запрос page_1.html?id=2 будет перенаправлять page.php?id=1&id=2, и (в PHP), $_GET['id'] будет 2.

+0

Не забудьте отметить начало и конец URL-адреса. – Gumbo

+0

Вот ссылка на документацию по QSA: http://httpd.apache.org/docs/current/rewrite/flags.html#flag_qsa – inorganik

3

Можно добавить его, используя флаг QSA (добавить строку запроса).

RewriteEngine on 
RewriteRule {from-url} {to-url} [L,NC,QSA] 
Смежные вопросы