Правилото .htaccess пренаписва URL адреса в адресната лента

Имам уебсайт, където връзките ми изглеждат така http://www.domain.com/index.php?lang=English&inc=canyoning Успях да напиша rewriteRule така:

RewriteRule (German|English)\/(.*) http://www.domain.com/index.php?lang=$1&inc=$2 [NC,R]

Сега връзките ми изглеждат така: <a href="http://www.domain.com/English/canyoning">...

Това работи, но виждам неудобен за потребителя URL адрес в адресната лента на браузъра. Как мога да кажа на браузъра да използва връзка като /English/canyoning в URL адреса, а не index.php?lang=English&inc=canyoning?

И второ: бих искал да използвам формуляри на страницата. Няма разлика, независимо дали използвам метода на формуляра = GET или POST, никакви променливи не идват на целевия сайт.

Предполагам, че моето правило за пренаписване е грешно. Как да коригирате тези проблеми?

Благодаря за помощта!


person user2123280    schedule 01.03.2013    source източник
comment
Трябва да зададете втория си въпрос отделно. Форматът на често задаваните въпроси на StackOverflow не работи добре с множество въпроси.   -  person Till Helge    schedule 01.03.2013
comment
Освен това може да получите по-добър отговор на webmasters.stackexchange.com   -  person Raad    schedule 01.03.2013


Отговори (1)


Това е така, защото правите пренасочване, а не пренаписване.. (Флагът R показва Пренасочване)

Така че премахването на флага R трябва да реши проблема ви.

Може също да се наложи да премахнете твърдо кодирания домейн. Тъй като правите пренаписване, не можете да пренапишете в различен домейн.

т.е. промяна

RewriteRule (German|English)\/(.*) http://www.domain.com/index.php?lang=$1&inc=$2 [NC,R]

To

RewriteRule (German|English)\/(.*) /index.php?lang=$1&inc=$2 [NC]
person cowls    schedule 01.03.2013
comment
Благодаря ти @cowls, това наистина помогна! - person user2123280; 01.03.2013