0

PHP で小文字にリダイレクトする非常に単純なリダイレクトがありますが、共有サーバーの制限により、.htaccess でこれを行うことはできません。

        if (preg_match('/[A-Z]+/', $url)){
        header("HTTP/1.1 301 Moved Permanently"); 
        header("Location: ".strtolower($url));
        exit;       
    }

ただし、.htaccess が既に URL をリダイレクトしている場合があります。これらすべてのケースには、urlencode された文字があります。%7E.

したがって、urlencoded char の形式ではない大文字をチェックし、それらを小文字に置き換える必要があります。

最悪の (またはおそらく最良の) 場合、既にリダイレクトされたヘッダーを試したくない場合は、PHP で既にリダイレクトされているかどうかを確認できます。

これについてどうすればよいかについてのアイデアはありますか?

4

1 に答える 1

0

簡単にできることは、URL をデコードして urlencode された文字を削除し、次に strtolower() を使用してエンコードし直すことです。

header("Location: ". urlencode(strtolower(urldecode($url))));
于 2013-04-12T22:43:57.087 に答える