Правило .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, никакие переменные не приходят на сайт назначения.

Я предполагаю, что мой rewriteRule неверен. Как исправить эти проблемы?

Спасибо за помощь!


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