.htaccess 删除url中的空白和转换小写?怎样

.htaccess 删除url中的空白和转换小写?怎样,.htaccess,mod-rewrite,removing-whitespace,.htaccess,Mod Rewrite,Removing Whitespace,我正在尝试向htaccess添加重写规则,该规则将覆盖url结构 发件人: 致: 虽然我成功地做到了这一点,但我发现它没有正确地显示url中的空格:即烘焙/可爱的巧克力蛋糕/显示为 烘焙/可爱的%20巧克力%20蛋糕/。 我试图实现的是覆盖空白(%20),将其设为-或+并将其全部改为小写。 到目前为止,我在阅读了以下内容后,终于找到了这段代码: RewriteRule ^/user/([a-z]+)/baked/([a-z\ .*A-Zx0-9-_]+)$ cakesmade.php?id=$1

我正在尝试向htaccess添加重写规则,该规则将覆盖url结构 发件人:

致:

虽然我成功地做到了这一点,但我发现它没有正确地显示url中的空格:即
烘焙/可爱的巧克力蛋糕/
显示为
烘焙/可爱的%20巧克力%20蛋糕/
。 我试图实现的是覆盖空白(%20),将其设为-或+并将其全部改为小写。 到目前为止,我在阅读了以下内容后,终于找到了这段代码:

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

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

您可以这样做。在
.htaccess
(实际
重写规则之前)中:

linkChange.php
中:

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


将大小写更改为小写需要更改Apache配置。您有权访问该文件吗?如果是htaccess文件,则是。没有,这是apache服务器配置,您需要具有管理员权限才能进行更改。谢谢。这很有帮助。对于我的代码,第二个括号的结构正确吗
RewriteRule^/user/([a-z]+)/baked/([a-z\.*a-Zx0-9-[u]+)$cakesmake.php?id=$1&baked=$2
对于您发布的代码,如果所有url都是小写,我仍然希望应用+或a-而不是空白,代码是否需要保持不变?您可以使用
[a-z.*0-9-]
对于您的
重写规则中的第二个测试
。在url栏中:它显示url两次,但即使我将其更正为url的第二部分(小写和带空格,而不是空格),它也不会正确显示。数组大写,例如
可爱的巧克力蛋糕
。数组也需要小写吗?或者我的代码有问题吗?请使用:
RewriteRule^/user/([a-z]+)/bake/([a-z.*0-9_-]+)$cakesmake.php?id=$1&baked=$2
对不起,我的措辞不太清楚。我的意思是:
example.com/user/laura/baked/cakes
>它显示预期的页面
example.com/user/laura/baked/Lovely%20Chocolate%20cake
>它显示预期的页面
example.com/user/laura/baked/lovely chocolate cakeexample.com/user/laura/baked/lovely chocolate cake
>这是链接更改后发生的情况,它不显示预期的页面,当我转到这个页面时,
example.com/user/laura/baked/lovely chocolate cake
>它不会显示记录,就好像它不在数组中一样。有什么想法吗?
RewriteRule ^/user/([a-z]+)/baked/([a-z\ .*A-Zx0-9-_]+)$ cakesmade.php?id=$1&baked=$2
RewriteRule ^/user/.*[A-Z\ ] /linkChange.php?l=%{REQUEST_URI} [L]
<?
    $link = $_GET['l'];
    $newlink = strtr($link," ABCDEFGHIJKLMNOPQRSTUVWXYZ","-abcdefghijklmnopqrstuvwxyz");
    header("Location: http://www.example.com". $newlink,TRUE,301); exit;
?>