LimeSurveyのアンケートページアクセスURLを短くする

isdはじめに

LimeSurveyは、オープンソースのオンラインアンケートアプリケーションです。
PHP, MySQL環境で動作します。

・LimeSurvey
https://www.limesurvey.org/

インストールは、WordPressとほぼ同じような感じですので、それほど難しくないと思います。
一般的なレンタルサーバーにも導入可能です。

詳細なインストール手順は以下などを参照してください。

・インストール – LimeSurvey CE
https://manual.limesurvey.org/Installation_-_LimeSurvey_CE/ja

・CentOS7 LimeSurveyのインストール – UnixPower on Networking
https://www.unix-power.net/networking/post-736

・LimeSurvey関連ソフトウェアのインストール – SIOS TECH.LAB
https://tech-lab.sios.jp/archives/11699

LimeSurveyは機能が豊富なのですが、アンケートページのURLは管理ユーザーが設定することはできず、LimeSurveyが自動的に数字6桁を生成して、例えば、以下のようなURLとなります。

https://example.jp/index.php/737518?lang=ja

アンケート回答者にURLを周知する際、メールやWebサイトで周知するのであれば、URLリンクを記載して、回答者にリンクをクリックしてもらえばよいですね。
しかし、紙媒体や音声でURLを周知する場合は、URLをできるだけ短くしたいこともあるでしょう。

isdアンケートページのURLを短くする(1)

まず、URLパスから index.php を削除します。
これはLimeSurveyのConfigを修正します。

<インストールディレクトリ>/application/config/config.php

-- 変更前
'showScriptName' => true,
--

-- 変更後
'showScriptName' => false,
--

 

(参考)
・LimeSurvey CE FAQ
 より短いURLにするためURLパスからindex.phpを削除するには
 https://manual.limesurvey.org/General_FAQ/ja

※この方法は、Apache mod_rewriteモジュールを使用しているときのみ有効とのことです。

これで、URLパスから index.php が削除されて、次のようになりました。

https://example.jp/737518?lang=ja

isdアンケートページのURLを短くする(2)

さらに、

https://example.jp/q1

のように、アクセスURLを任意の文字列に変更したい場合は、mod_rewriteモジュールによるURLリダイレクト設定を行うとよいでしょう。
Apacheのhttpd.conf, VirtualHost Configや、.htaccess に、次のように記述します。

# URL Rewrite
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/q1$
RewriteRule ^.*$ /737518?lang=ja [R=301,L]
</IfModule>

 

Nginxでしたら、こんな感じですね。

location = /q1 {
  rewrite ^(.*)$ /737518?lang=ja redirect;
}

 

これで、回答者による
https://example.jp/q1
へのアクセスが
https://example.jp/737518?lang=ja
にリダイレクトされます。

※リダイレクトですので、ページ表示後のWebブラウザのURL表示は https://example.jp/737518?lang=ja となります。

また、LimeSurveyのトップページ
https://example.jp/
には、「次のアンケートが利用可能です」という表示がありますが、このページを隠して、アンケートページに転送する場合は、次のようになります。

Apacheの場合。

# URL Rewrite
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^.*$ /737518?lang=ja [R=301,L]
</IfModule>

 

Nginxの場合。

location = / {
  rewrite ^(.*)$ /737518?lang=ja redirect;
}

 

簡単な方法ですが、
「LimeSurvyeのアンケートページURLを短くする、任意の文字列とする」
方法はネット上にほとんどないようですので、まとめてみました。

他には、URL短縮サービスを利用方法もありますね。
 

Follow me!