前提・実現したいこと
ここに質問の内容を詳しく書いてください。
制作会社さんにPHP(Laravel)でCMSを構築してもらいました。
そのCMS内でcanonical設置をする必要があります。
その際にURLの正規化(特定のパラメータ以外は削除)を行いたいです。
PHPをほとんど触ったことがないので、初歩的な質問で恐縮ですがお知恵をお借りで来ますと幸いです。
実現したいこと
現在のURLを取得し、ページ情報のパラメータのみのURLに整形したいです。
・ページ情報のパラメータ:?page=**
具体的には以下のような形です。
hoge.com/ → そのまま
hoge.com/?page=123 → そのまま
hoge.com/?parameta=123 → 「hoge.com/」を取得
hoge.com/?parameta=123&page=123 → 「hoge.com/?page=123」を取得
試したこと
以下の手順かなと思ったのですが、どうもpageだけ取り出すのがわからず。。。
現在のURL取得
→条件分岐(パラメータなし):パラメータなしURLを出力
→条件分岐(パラメータ付き):要整形URL(このパラメータ制御が綺麗にできず)
過去にWordPressで似たようなことをやったのですが、整形方法までわからず断念しました。。。
<?php global $wp; $url = $_SERVER['REQUEST_URI']; $current_url = add_query_arg( $wp->query_string, '', home_url( $wp->request ) ); $current_url = strtok( $current_url, '?' ); ?> <!-- パラメータがついた時はパラメータ削除 --> <?php if(strstr($url,'?')): ?> <link rel="canonical" href="<?php echo $current_url ?>"> <?php else: ?> <!-- パラメータがついてない時は自URLを出力 --> <link rel="canonical" href="<?php echo (empty($_SERVER["HTTPS"]) ? "http://" : "https://") . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]; ?>"> <?php endif; ?>
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。