PHP перенаправить из /index.php в / - PullRequest
0 голосов
/ 18 марта 2012

Я пытаюсь заставить браузер перенаправлять всякий раз, когда пользователь вводит /index.php или /index.php/ или /index.php////, просто /. Вот что у меня пока что

if ($_SERVER['ORIG_PATH_INFO'] == '/index.php') {
    header('HTTP/1.1 301 Moved Permanently');
    header('Location: http://'.$_SERVER['HTTP_HOST'].'/'
}

Но я получаю ошибку перенаправления бесконечного цикла. Что я делаю неправильно? Есть ли способ сделать эту работу?

РЕДАКТИРОВАТЬ, кажется, что изменение 'ORIG_PATH_INFO' на 'REQUEST_URI' помогло /index.php, что я добавлю к своему if, чтобы позаботиться о index.php/ и index.php//// ...?

Ответы [ 2 ]

2 голосов
/ 18 марта 2012

Используйте REQUEST_URI. Когда вы используете ORIG_PATH_INFO, вы всегда получите /index.php.

1 голос
/ 18 марта 2012

вместо этого основывайте ваше условие на $_SERVER['REQUEST_URI'], и когда URL фактически не содержит index.php, оно не будет пытаться перенаправить.

и использовать stristr для поиска index.php, где бы он ни находилсявстречается в URL

http://us3.php.net/manual/en/function.stristr.php

...