我正在努力为下载页面制作一个SEO友好链接 使用Azure网站上托管的codeigniter,现在可以正常工作:
www.example.com/downloads/viewfile/34
现在当我生成此链接时:
www.example.com/downloads/viewfile/my-nice-file-name-34
Url重写在WAMP服务器上本地运行良好,但是当部署到远程(Azure Webites IIS?)时,它会出错:
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.
我认为原因是:IIS上不允许使用短划线符号,但是有没有办法?
答案 0 :(得分:2)
毕竟,我发现它不是导致问题的短划线符号,而是网址本身中的单词
像昨天一样我www.example.com/downloads/viewfile/example-file-34
出于某种原因,在url段中使用您的域名会使该错误产生错误,因此我只需更换" mydomain"在生成Url段之前没有任何内容
$fileName = str_replace('mydomain','',$fileName);
return url_title($fileName.$fileId);
现在上面的相同链接是www.example.com/downloads/viewfile/file-34
,其工作正常。
我还注意到在使用像ajax,json这样的单词时会遇到同样的行为。
我希望这对你来说是有帮助的。
答案 1 :(得分:0)
在routes.php文件中
查找
$route['translate_uri_dashes'] = FALSE;
替换为
$route['translate_uri_dashes'] = TRUE;
您可能还需要查看
URI路由Codeigniter 3
http://www.codeigniter.com/user_guide/general/routing.html
Codeigniter 2 URI路由