Махане на параметър от url с mod_rewrite

against

New member
От няколко дена се мъча с един mod_rewrite, изчетох сума ти неща и пак не става... на пръв поглед е просто ама явно все нещо бъркам...

Та имам такъв адрес:
http://site.com/ads?page=show_ad&adid=126&catid=1

И искам да разкарам catid от адреса, така че да редиректва към това:
http://site.com/ads?page=show_ad&adid=126


Някой ако ме светне как става, ще съм безкрайно благодарен 🙂
 
Re: Махане на параметър от url с mod_rewrite

Според мен няма как точно с mod_rewrite да стене това. И аз съм го мъчил, но колкото и да променяш адреса, параметрите си остават.

Моят съвет е да си пренапишеш целия адрес, примерно на:
http://site.com/show_ad/126/
 
Re: Махане на параметър от url с mod_rewrite

Голяма е гад наистина, но проблема ми е че гугъл ги е индексирал тия неща и дава дублирано съдържание (понеже от сайта съм го разкарал вече параметъра).

Та докарах го до нещо такова:
Код:
RewriteCond %{QUERY_STRING} ^(.*)&adid=([0-9]+)&catid=[0-9]+$
RewriteRule ^(.*)$ /ads?page=show_all [R=301,L]

Това редиректва към друг адрес, но пък така не ме устройва. Сега проблемът ми е че немога да взема ID-то, че да му го препратя.

Е това немога да разбера защо не работи, уж всичко е наред, обаче условието в RewriteRule не го захапва (пък като е само ^(.*)$ го хваща)
Код:
RewriteCond %{QUERY_STRING} ^(.*)&adid=([0-9]+)&catid=[0-9]+$
RewriteRule ^(.*)page=show_ad&adid=([0-9]+)&catid=[0-9]+$ /ads?page=show_ad&adid=$2 [R=301,L]
 
Последно редактирано:
Re: Махане на параметър от url с mod_rewrite

Щом е заради Г защо не махнеш параметъра в ГВебмастерТулс -> конфигурация на сайта -> настройки -> Коригиране на настройките на параметрите -> и задаваш съответния параметър да се пренебрегва ...
 
Re: Махане на параметър от url с mod_rewrite

Щом е заради Г защо не махнеш параметъра в ГВебмастерТулс -> конфигурация на сайта -> настройки -> Коригиране на настройките на параметрите -> и задаваш съответния параметър да се пренебрегва ...

Мислих го това, но пък на други страници се ползва... А само от обявите май няма как да го махна?
 
Re: Махане на параметър от url с mod_rewrite

Скоро го мъчих.

Махането на параметрите става с едно въпросче на края на RewriteRule, т.е. на тебе ти трябвa:

Код:
RewriteCond %{QUERY_STRING} ^page=show_ad&adid=([0-9]+)&catid=([0-9]+)$
RewriteRule ^(.*)$ /ads/page=show_ad&adid=%1? [r=301,nc,l]
 
Re: Махане на параметър от url с mod_rewrite

а защо не пробваш редирект с PHP, например:
Код:
 if ($catid) {

      Header( "HTTP/1.1 301 Moved Permanently" ); 
      Header( "Location: http://...url_bez_catid...." ); 

      } else {

   ..... продължаваш кода на страницата

      }
Ползвам подобни неща често при промяна в структурата на сайта и работят добре.
 
Re: Махане на параметър от url с mod_rewrite

Скоро го мъчих.

Махането на параметрите става с едно въпросче на края на RewriteRule, т.е. на тебе ти трябвa:

Код:
RewriteCond %{QUERY_STRING} ^page=show_ad&adid=([0-9]+)&catid=([0-9]+)$
RewriteRule ^(.*)$ /ads/page=show_ad&adid=%1? [r=301,nc,l]

Така прави някакъв редирект, обаче %1 държи нещо друго и се бъгва. Как мога в %1 да сложа adid-то?


@ted: мерси, не се бях сетил. В краен случай така ще стане.
 
Re: Махане на параметър от url с mod_rewrite

Използвай PHP както ти предложи ted, по-лесно е.
 
Re: Махане на параметър от url с mod_rewrite

Еми да, накрая през PHP стана, въпреки че ми се искаше да е с mod_rewrite.

Мерси все пак.
 

Back
Горе