URL nginx переписывает для php-URL

Кроме того, что-то, что произошло для нас..., мы столкнулись с проблемами размера реестра, которые в конечном счете привели к той же проблеме

Изменение HKLM\SYSTEM\CurrentControlSet\Control\RegistrySizeLimit быть больше (для нас, мы использовали 8 f's... Ценность на 4 ГБ комнаты расширения. Это устранило много проблем для нас.

0
задан 23 November 2012 в 11:05
2 ответа

Если у вас есть прямое соответствие между старыми параметрами URL и новым путем URL, вы можете использовать такой синтаксис:

location /index.php {
  ...
  try_files $uri /$arg_site =404;
}

С такой конфигурацией любой запрос, начинающийся с /index.php , сначала будет повторяться по точному URL-адресу, затем, если нет подходящего файла или местоположения, nginx попытается выполнить внутреннее перенаправление с / foo , если исходный URL-адрес /index.php?site=foo . Если и это не поможет, nginx отправит ответ 404 HTTP Not Found .

1
ответ дан 4 December 2019 в 21:33

Я исправил эту проблему, используя php, а не функцию перезаписи nginx:

if (isset($_GET["site"]) {
  switch ($_GET["site"]) {
    case 'foo':
      Header( "HTTP/1.1 301 Moved Permanently" ); 
      Header( "Location: /foo" ); 
      break;

     ...
  }
}
0
ответ дан 4 December 2019 в 21:33

Теги

Похожие вопросы