清除URL生成器Symfony2在dev中工作,但在prod中不工作



我在Symfony 2.6:中使用此代码作为干净的URL生成器

namespace AppBundleUtility;
class Utility {
public static function getSlug($string, $separator = '-')
{
// Source: http://cubiq.org/the-perfect-php-clean-url-generator
$slug = iconv('UTF-8', 'ASCII//TRANSLIT', $string);
$slug = preg_replace("/[^a-zA-Z0-9/_|+ -]/", '', $slug);
$slug = strtolower(trim($slug, $separator));
$slug = preg_replace("/[/_|+ -]+/", $separator, $slug);
return $slug;
}
}

它在我的开发环境中运行良好,具有特殊字符,但在我的产品环境(我的服务器)中则不然。它不会改变像áéñ%这样的角色,它们只是消失了。例如"Artículo año 2000",它显示:"artculo-ao-2000"。

我在CentOS 5.11中安装了PHP 5.5.23,我在Apache的http.conf和PHP.ini中添加了UTF-8作为默认字符集,如果我键入"PHP-app/check.PHP",一切都很好,但它只建议使用PHP加速器。

我尝试上传一个带有特殊字符/holá.html的文件,效果很好。

我不知道还能做什么。是因为prod环境配置吗?

iconv()需要正确的setlocale();。请确保您没有在不同的环境之间更改它,如果您的dev-dev机器与prod不同,请检查您是否安装了正确的区域设置。

相关内容

最新更新