Htaccess для чистых URL-адресов и перенаправления [закрыто]Apache

Ответить
Anonymous
 Htaccess для чистых URL-адресов и перенаправления [закрыто]

Сообщение Anonymous »

Я использую .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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Apache»