Переписывание URL-адреса запроса

#apache #mod-rewrite

#апач #мод-переписать #apache

Вопрос:

Предположим, у меня есть URL-адреса с параметрами строки запроса, подобными этим:

 index.php?lag=enamp;name=About Usamp;itemid=60
index.php?host=consumeramp;lag=enamp;name=About Usamp;itemid=64
  

Используя mod_rewrite, как я могу перенаправить их следующим образом?

 en_About Us_60.php
consumer/en_About Us_64.php
  

В приведенных выше URL-адресах значения являются динамическими.

Комментарии:

1. Я совершенно уверен, что вы имеете в виду обратное, вы хотите, чтобы URL-адрес отображался в en_About Us_60.php для пользователя и перенаправлены на index.php?lag=enamp;name=О насamp;itemid=60 для приложения, не так ли? И вы уверены, что хотите перенаправление или просто прозрачную перезапись?

2. Да, я хочу перенаправить index.php?lag= enamp;name= О насamp; itemid= 60 index.php?host= consumeramp;lag= enamp;name= О насamp;itemid= 64 эти два динамических URL-адреса на статические URL, такие как en_About Us_60.php потребитель/ru_About Us_64.php это. Пожалуйста, помогите мне

3. вы говорите «да», а затем говорите противоположное моему предложению… напишите в своем вопросе URL-адрес пользователя и URL-адрес вашего приложения. У вас есть en_About Us_64.php досье?

Ответ №1:

Что-то вроде этого:

 RewriteEngine on 
RewriteCond %{QUERY_STRING} host=(.*)amp;lag=(.*)amp;name=(.*)amp;itemid=(.*)
RewriteRule ^index.php(.*)$ /%1/%2_%3_%4 [QSA]

RewriteCond %{QUERY_STRING} lag=(.*)amp;name=(.*)amp;itemid=(.*)
RewriteRule ^index.php(.*)$ /%1_%2_%3 [QSA]
  

Помните, чтобы проверить все возможные утверждения 😉