Я использую .htaccess для преобразования URL-адресов с переменными PHP для очистки URL-адресов. Пока что я могу конвертировать и использовать их в браузере.
Это пример .htaccess
RewriteEngine On
RewriteBase /
RewriteRule ^productgroup/([0-9a-zA-Z]+)$ products/index.php?Cid=$1 [NC,L]
Если я использую в браузере /productgroup/3, он работает нормально, но если запрос для /products/?Cid=3 остается прежним.
Поэтому я добавляю флаг R:
RewriteEngine On
RewriteBase /
RewriteRule ^productgroup/([0-9a-zA-Z]+)$ products/index.php?Cid=$1 [R=302,NC,L]
в браузере я получаю старый URL-адрес, например /products/?Cid=3, даже если я набираю новый, а мне нужно работать наоборот. Я не очень знаком с mod_rewrite, поэтому буду признателен за любую помощь.
Спасибо
ОБНОВЛЕНИЕ
Теперь у меня есть файл .htaccess, в котором работают все внутренние ссылки, но не все внешние, хотя они работают на локальном хосте моего компьютера:
#external
#these are not working
RewriteCond %{QUERY_STRING} ^Cid=([0-9a-zA-Z]+)&Pid=([0-9a-zA-Z]+)$
RewriteRule ^product_info/$ /productinform/%1-%2 [QSD,R=302,L]
RewriteCond %{QUERY_STRING} ^Bid=([0-9a-zA-Z]+)&Pid=([0-9a-zA-Z]+)$
RewriteRule ^product_info/$ /productinform/b-%1-%2 [QSD,R=302,L]
RewriteCond %{QUERY_STRING} ^Pid=([0-9a-zA-Z]+)$
RewriteRule ^product_info/$ /productinform/%1 [QSD,R=302,L]
#the rest is working
RewriteCond %{QUERY_STRING} ^Cid=([0-9a-zA-Z]+)$
RewriteRule ^products/$ /productgroup/%1 [QSD,R=302,L]
RewriteCond %{QUERY_STRING} ^Bid=([0-9a-zA-Z]+)$
RewriteRule ^brands/$ /brand/%1 [QSD,R=302,L]
RewriteCond %{QUERY_STRING} ^Cid=([0-9a-zA-Z]+)&start=([0-9a-zA-Z]+)$
RewriteRule ^news/$ /newsgroup/%1-%2 [QSD,R=302,L]
RewriteCond %{QUERY_STRING} ^Bid=([0-9a-zA-Z]+)&start=([0-9a-zA-Z]+)$
RewriteRule ^news/$ /newsgroup/b-%1-%2 [QSD,R=302,L]
RewriteCond %{QUERY_STRING} ^Pid=([0-9a-zA-Z]+)$
RewriteRule ^new_info/$ /newarticle/%1 [QSD,R=302,L]
#internal
RewriteRule ^productgroup/([0-9a-zA-Z]+)$ products/index.php?Cid=$1 [NC,END]
RewriteRule ^productinform/([0-9a-zA-Z]+)-([0-9a-zA-Z]+)$ product_info/index.php?Cid=$1&Pid=$2 [NC,END]
RewriteRule ^productinform/b-([0-9a-zA-Z]+)-([0-9a-zA-Z]+)$ product_info/index.php?Bid=$1&Pid=$2 [NC,END]
RewriteRule ^productinform/([0-9a-zA-Z]+)$ product_info/index.php?Pid=$1 [NC,END]
RewriteRule ^brand/([0-9a-zA-Z]+)$ brands/index.php?Bid=$1 [NC,END]
RewriteRule ^newsgroup/([0-9a-zA-Z]+)$ news/index.php?Cid=$1 [NC,END]
RewriteRule ^newsgroup/([0-9a-zA-Z]+)-([0-9a-zA-Z]+)$ news/index.php?Cid=$1&start=$2 [NC,END]
RewriteRule ^newsgroup/b-([0-9a-zA-Z]+)-([0-9a-zA-Z]+)$ news/index.php?Bid=$1&start=$2 [NC,END]
RewriteRule ^newarticle/([0-9a-zA-Z]+)$ new_info/index.php?Pid=$1 [NC,END]
Подробнее здесь: https://stackoverflow.com/questions/798 ... edirecting