Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Was ich tun muss, um URLs mit Sonderzeichen zu öffnen

\w stimmt nur mit Wortzeichen überein, wenn Wortzeichen [a-zA-Z0-9_] ist und es enthält nicht alle Unicode-Zeichen.

Ändern Sie Ihre Regel wie folgt:

RewriteRule ^post/([^/]+)/?$ single_post.php?blog_title=$1 [L,QSA]

[^/]+ stimmt mit jedem Zeichen überein, das nicht / ist einschließlich Unicode-Zeichen.

Sie können den PHP-Code auch ein wenig optimieren:

function url_slug($str) {   
    $str = mb_strtolower(trim($str), 'UTF-8');
    $str = preg_replace('/[^\pL\pN]+/u', ' ', $str);
    $str = trim($str);
    $str = preg_replace('/\h+/', '-', $str);
    return $str;
}