关于LimeSurvey的url设置,其实官方文档写得还是很清楚的。它所谓的短链就是伪静态(rewrite)规则,目的就是去除链接中的index.php?
部分,让整体更好看些。
一、修改config.php
LimeSurvey的配置文件位于“/根目录/application/config”下,名为config.php。找到其中的urlManager
部分,按照下列代码修改:
'urlManager' => array(
'urlFormat' => 'path',
'rules' => array(
'<sid:\d+>' => array('survey/index','urlSuffix'=>'.html','matchValue'=>true),
),
'showScriptName' => false,
),
其中rules部分是为了添加.html后缀,使得网页的链接变为xxx.html?lang=zh-Hans。
如果你使用的是nginx服务,那么找到配置文件并修改如下:
server {
set $host_path "/PATH/TO/LIMESURVEY";
server_name YOUR.SERVER.FQDN;
root /PATH/TO/LIMESURVEY;
charset utf-8;
try_files $uri $uri/ /index.php?r=$uri&$args;
#不允许从脚本目录内部读取, see issue with debug > 1 on note
location ~ ^/(application|protected|framework|themes/\w+/views) {
deny all;
}
#不允许从用户上传目录直接读取
location ~ ^/upload/surveys/.*/fu_[a-z0-9]*$ {
return 444;
}
#不允许上传可执行文件到上传目录
location ~* /upload/.*\.(pl|cgi|py|pyc|pyo|phtml|sh|lua|php|php3|php4|php5|php6|pcgi|pcgi3|pcgi4|pcgi5|pcgi6|icn)$ {
return 444;
}
#避免处理yii对不存在的静态文件的调用
location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
try_files $uri =404;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(.*)$;
try_files $uri index.php;
fastcgi_pass 127.0.0.1:9000; # Change this to match your settings
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
}
说明:fastcgi_pass部分要根据自己的实际情况来设置。
重新加载配置文件,网站可以正常打开。
而且很有意思的是,一旦开始答题,?lang=zh-Hans
的小尾巴就没有了。
参考文档: