删除空格并在网址中转换小写?怎么样?

时间:2014-12-20 17:04:10

标签: .htaccess mod-rewrite removing-whitespace

我正在尝试向htaccess添加重写规则,覆盖url结构 来自:

example.com?user=laura&baked=cakes

为:

example.com/user/laura/baked/cakes

虽然我设法做到这一点,我发现它没有在网址中正确显示空格:即。 baked/Lovely Chocolate Cake/显示为 baked/Lovely%20Chocolate%20Cake/。 我试图实现的是覆盖空白(%20)并使其成为 - 或+并将其全部变为小写。 到目前为止,我在阅读了SO之后设法得到了这段代码:

RewriteRule ^/user/([a-z]+)/baked/([a-z\ .*A-Zx0-9-_]+)$ cakesmade.php?id=$1&baked=$2

欢迎您提出意见。 htaccess语言似乎有点难以解释。

1 个答案:

答案 0 :(得分:0)

你可以做到这一点。在.htaccess(实际RewriteRule之前):

RewriteRule ^/user/.*[A-Z\ ] /linkChange.php?l=%{REQUEST_URI} [L]

linkChange.php

<?
    $link = $_GET['l'];
    $newlink = strtr($link," ABCDEFGHIJKLMNOPQRSTUVWXYZ","-abcdefghijklmnopqrstuvwxyz");
    header("Location: http://www.example.com". $newlink,TRUE,301); exit;
?>