meta refreshを使ったリダイレクトHTMLファイルを一括生成する

ホーム > ブログ | 検索

Yahoo!ジオシティーズが終了との事で、サイトを引っ越さないといけなくなりました。ジオシティーズの転送設定はどのページも引越し先のトップページにしか転送してくれないようです。また、.htaccessも使えないようなので、meta refreshを使ったリダイレクトHTMLファイルを一括生成するプログラムを書きました。

簡単に説明を
1.作成したいファイル名を列挙したinput.txtを作成します。(参考:dir /b > input.txt)
2.redirect.cを必要に応じて修正しコンパイルします。
3.redirect.exeを実行します。※

※元あるファイルを強制的に上書きします(同名ファイルの有無に関わらず作成します)。作業用のディレクトリで実行してください。自己責任でお使いください。よくわからない方は使わないほうが無難です。

環境
Windows10 ver.1803
Visual Studio 2012

作成例:input.txt
-----
abc1.html
abc2.html
abc3.html
-----

作成例:redirect.c
-----
#include <stdio.h>
#include <process.h>

void file_write(char name[])
{
    FILE *fp;
    int i;
    
    for(i=0;name[i]!='\0';i++){
        if(name[i]=='\n') name[i]='\0';
    }
    
    if((fp=fopen(name,"w"))==NULL){
        printf("FILE not open 2\n");
        exit(1);
    }
    fputs("<!doctype html>\n",fp);
    fputs("<html lang=\"ja\">\n",fp);
    fputs("<head>\n",fp);
    fputs("  <meta charset=\"Shift_JIS\">\n",fp);
    fputs("  <meta http-equiv=\"refresh\" content=\"0; url=https://example.com/",fp);
    fputs(name,fp);
    fputs("\">\n",fp);
    fputs("</head>\n",fp);
    fputs("<body>\n",fp);
    fputs("このページは移転しました。0秒後に自動で移動します。移動しない場合は<a href=\"https://example.com/",fp);
    fputs(name,fp);
    fputs("\">こちら</a>をクリックしてください。<br>\n",fp);
    fputs("</body>\n",fp);
    fputs("</html>\n",fp);
    
    fclose(fp);
}

void main(void)
{
    char buf[256];
    FILE *fp;
    
    if((fp=fopen("input.txt","r"))==NULL){
        printf("FILE not open 1\n");
        exit(1);
    }
    
    while(fgets(buf,256,fp)!=NULL){
        file_write(buf);
    }
    
    fclose(fp);
}
-----

関連
1.コマンドプロンプトでファイル名だけの一覧を表示する
2.コマンドの出力先をファイルにする

作成 2018/11/05
更新 2018/11/05

戻る | サイト内検索 | 免責事項