# BEGIN Invisible default document and https <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L] RewriteRule ^(.*)$ /index.html/$1 [L] </IfModule> # END Invisible default document and https
例えば上記の内容をtest.shによって.htsccessをいうファイルを作りそのファイルに上記内容を書き込む場合のスマートな方法は何がありますでしょうか?
こんな感じのしか思いつきませんが、スマートな方法があれば教えていただきたいです。
test.sh
#!/bin/bash echo "# BEGIN Invisible default document and https" >> .htaccess echo "<IfModule mod_rewrite.c>" >> .htaccess echo "RewriteEngine On" >> .htaccess echo "RewriteCond %{HTTPS} off" >> .htaccess echo "RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]" >> .htaccess echo "RewriteRule ^(.*)$ /index.html/$1 [L]" >> .htaccess echo "</IfModule>" >> .htaccess echo "# END Invisible default document and https" >> .htaccess cat .htaccess
あと話がちょこっと変わりますが、下記のようなファイルを雛形として用意しておきます。
.htsccess.modelというファイル名だとしましょうか。
# Environment variable setting for fuelphp SetEnv FUEL_ENV production
test.shではテスト環境、ステージング環境、本番環境の.htsccessを生成したいとします。
test.shでは.htsccess.modelに引数を3回読み取ります。
引数はtest, staging, producitonとします。
.htsccess.modelは引数を受け取り、
SetEnv FUEL_ENV $env
の$envの部分を受け取った引数に書き換えて、test.shに返します。
受け取ったtest.shは任意のパスに.htaccessというファイル名で保存します。
と、やりたい処理はこうですがこれって実現できるものなのでしょうか?
ファイルがメソッドだとするなら
echo .htsccess.model test > public_html/test/.htaccess echo .htsccess.model staging > public_html/staging/.htaccess echo .htsccess.model production > public_html/.htaccess
みたいなイメージです。
追記::
[mg1986jp@sv5015 ~]$ cat test.sh #!/bin/bash function sample() { case "$1" in test|staging|produciton) sed "s/production/$1/" .htsccess.model >.htsccess ;; *) echo B0z?t$,$*$+$7$$ exit 2 ;; esac } $(sample "staging") [mg1986jp@sv5015 ~]$ ./test.sh ./test.sh: 行 10: 予期しないトークン `(' 周辺に構文エラーがあります ./test.sh: 行 10: ` echo B0z?t$,$*$+$7$$' [mg1986jp@sv5015 ~]$
うーん、使い方がおかしいのでしょうか、、、、
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/01 15:38
2018/02/01 15:47
2018/02/01 15:50
2018/02/02 05:34 編集