Преобразование хеш-URL в длинный URL-адрес? PHP? - PullRequest
0 голосов
/ 18 октября 2011

Я построил всю свою веб-страницу с хешами (http://example.com/videos#video01), но проблема в том, что когда я хочу поделиться на Facebook, очевидно, он не распознает хеш, поэтому мой вопрос: есть ли способ преобразовать или перенаправить URL-адрес хеша для длинного URL-адреса?

Решение: Я попробовал еще раз с API bit.ly, я получил 50 видео, чтобы показать каждое с хешем в конце URL. Я сделал небольшой кеш-скрипт (у bit.ly есть ограничение) и написал с помощью PHP «foreach», похоже, что bit.ly принимает хэши.

В любом случае, спасибо.

Ответы [ 2 ]

0 голосов
/ 09 марта 2016

Новый формат ссылки: http://example.com/videos?name=video01

Вызывайте эту функцию по направлению к верхней части контроллера или http://example.com/videos/index.php:

function redirect()
{
    if (!empty($_GET['name'])) {
        // sanitize & validate $_GET['name']
        // Remove anything which isn't a word, whitespace, number
        // or any of the following caracters -_~,;[]().
        // If you don't need to handle multi-byte characters
        // you can use preg_replace rather than mb_ereg_replace
        $file = mb_ereg_replace("([^\w\s\d\-_~,;\[\]\(\).])", '', $_GET['name']);
        // Remove any runs of periods
        $file = mb_ereg_replace("([\.]{2,})", '', $file);
        $valid = file_exists('pathToFiles/' . $file);
        if ($valid) {
            $url = '/videos#' . $file;
        } else {
            $url = '/your404page.php';
        }
        header("Location: $url");
    }
}

Фрагмент санации из этого высоко оцененного ответа: https://stackoverflow.com/a/2021729/1296209

0 голосов
/ 18 октября 2011

# и все после не отправляется на сервер. В вашем случае вы отправляете только http://example.com/videos.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...