2015-09-10 2 views
0

Так я форма, которая перенаправляет свои данные с помощью GET в качестве способа этой страницы (seccions/search.php) перенаправляет которым меня:редиректа форма GET для дружественного пользовательского URL

http://host/seccions/search.php?search_term_string=([^/]*)&search_term_on=([^/]*) 

И я хотел бы быть перенаправлены раз отсылаться на другой схеме:

http://host/empresas/categoria/$1/poblacio/$2/ 

Я пытаюсь добиться этого с помощью Htaccess (так как я не вижу других легких путей) Я пытаюсь перенаправить уродливый URL в хорошенькая, что позже, на htaccess, преобразованном в правильный шаблон url, используя этот код:

RewriteRule ^seccions/search.php?search_term_string=([^/]*)&search_term_on=([^/]*)$ empresas/categoria/$1/poblacio/$2/ [L] 
RewriteRule ^empresas/categoria/([^/]*)/poblacio/([^/]*)$ seccions/search.php?que=$1&on=$2 [L] 

(я знаю, что я меняю имена Param и страницу поиска .php уже подготовлена ​​для различных $ _GET имен)

но когда форма получает представлен он просто идет к уродливому URL с GET params.

Есть ли способ исправить это?

Спасибо!

ответ

0

Ваше второе правило верное, но 1-е не будет работать, потому что вы не можете сопоставить строку запроса в RewriteRule. Вам нужно будет использовать THE_REQUEST переменную в RewriteCond, чтобы избежать зацикливания:

RewriteEngine On 
RewriteBase /puntvallesgit/ 

RewriteCond %{THE_REQUEST} /search\.php\?search_term_string=([^\s&]+)&search_term_on=([^\s&]+) [NC] 
RewriteRule^empresas/categoria/%1/poblacio/%2/? [R=302,L,NE] 

RewriteRule ^empresas/categoria/([^/]+)/poblacio/([^/]+)$ seccions/search.php?que=$1&on=$2 [L,QSA] 
+0

если это будет работать, не касаясь кода, по какой-то причине это не так: S – Dun

+0

Если я искать в виде перенаправляет меня на «HTTP: //localhost/puntvallesgit/seccions/search.php?search_term_string=Articles+nous&search_term_on=Agramunt "ожидаемый" будет localhost/puntvalles/categoria/Articles + nous/poblacio/Agramunt ", и у меня есть другие условия для того же URL-адреса шаблон, но с 1 или 2 параметрами вместо 2 из предыдущих (для сухарей). Я отправлю правильный ответ, чтобы вы могли увидеть весь код HTACCESS, связанный с этими ссылками. – Dun

+0

ОК теперь он «работает», но он убивает мою подкаталоги localhost, перенаправляя меня на «http: // localhost/empresas/categoria/Articles + erotics/poblacio/Agramunt /» вместо «http: // localhost/puntvallesgit/empresas/categoria/Articles + erotics/poblacio/Agramunt/" – Dun

Смежные вопросы