New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mod_rewriteを標準では使わないようにした方がいいんじゃないでしょうか? #1103

Open
nobuhiko opened this Issue Oct 28, 2015 · 11 comments

Comments

Projects
None yet
7 participants
@nobuhiko
Contributor

nobuhiko commented Oct 28, 2015

フォーラムを見ているとmod_rewriteで詰まるひとが多いようなので、標準はindex.phpでアクセスするようにしておき、wordpressのように管理画面から動作を変更できるようにした方が親切なのではないでしょうか

@ttsuru

This comment has been minimized.

Contributor

ttsuru commented Oct 28, 2015

index.php/なんたら
でもアクセスできるので、Symfonyのように少しテンプレートの書き方を変えたら動くような気がします。

@nanasess

This comment has been minimized.

Contributor

nanasess commented Dec 17, 2015

管理画面から設定できるようすれば、 #558 の互換性の問題とかもうまくできそうですね。

@k-yamamura

This comment has been minimized.

Contributor

k-yamamura commented Dec 17, 2015

こちらの対応方針ですが、

ドキュメントルートをEC-CUBEルート直下に設定するものとして、
レンタルサーバによってはindex.phpをつけないと動作しないという環境もありますので、

  • EC-CUBEデフォルトURLは http://xxxxx/html/index.php

管理画面の設定で、

  • index.phpを付けたり無くしたりの設定が可能
  • URLを自由に付けれるように(htmlを無くしたり、storeのように別のurlにしたり)管理画面から設定できるようにする

対応方法としては下記のどちらかで対応可能かどうかを検討

  • .htaccessのみで対応
  • ディレクトリを移動させる

として考えています。

レンタルサーバによっては当然動作しない環境も出てくると思いますが、
修正方針としてこうした方が良いなどのご意見を聞かせて頂ければ幸いです。

@ttsuru

This comment has been minimized.

Contributor

ttsuru commented Dec 17, 2015

@k-yamamura

index.phpを付けたり無くしたりの設定が可能

これは、設定をしなくてもSymfonyのように挙動できるのではないでしょうか。

@ttsuru

This comment has been minimized.

Contributor

ttsuru commented Dec 17, 2015

ほとんどの場合は、index.php と vendor/ のディレクトリの位置関係だけで、環境変数でどうにかできるはずです。

@ttsuru

This comment has been minimized.

Contributor

ttsuru commented Dec 17, 2015

.htaccess なしかつ ROOT直に index.php だと環境として危険じゃないですかね・・・

@k-yamamura

This comment has been minimized.

Contributor

k-yamamura commented Dec 17, 2015

@ttsuru
ご指摘ありがとうございます。

apacheが前提となりますがレンタルサーバによっては

DirectoryIndex

が使えないところがあり index.php をつけないと動かないため、
デフォルトでは index.php を有効にしようと考えていました。
本来であれば DirectoryIndex が使えればこのような事を考えなくても良いのですが。

ご指摘いただいた内容も含めて回避方法がないかもう一度調べてみます。

@nobuhiko

This comment has been minimized.

Contributor

nobuhiko commented Dec 17, 2015

レンタルサーバーが .htaccess なしかつ ROOT直に index.php じゃないと動かない以上そこにあわせていかないと、バッドノウハウで危険なものが巷にあふれるだけな気がします

EC-CUBEデフォルトURLは http://xxxxx/html/index.php

html が標準で付く状態はsrcやappにアクセスも出来てしまう状況なのでおかしな状況な気がします

@ttsuru

This comment has been minimized.

Contributor

ttsuru commented Dec 17, 2015

@nobuhiko
僕も同意見です。
ECサイトとして不適切なインフラだけでも排除したほうがいいと思います。

@nanasess

This comment has been minimized.

Contributor

nanasess commented Dec 17, 2015

Magento や Drupal など競合製品は ROOT 直下に index.php があるので、同様に、適切に .htaccess が設定されていれば良いと思いますけどね。
mod_rewrite が使えない(FollowSymlinks が無効)なレンサバは多そうですが、 Deny も無効になっているような環境がどれだけあるかは、調べないとわからないですね。

https://github.com/drupal/drupal
https://github.com/magento/magento2

@Yangsin

This comment has been minimized.

Contributor

Yangsin commented Dec 18, 2015

html がつかないURLで安全に運用できるようにしたいですね。

  1. http://hogehoge.net/
    html がドキュメントルートとして設定されているイメージ)
  2. http://hogehoge.net/store/
    store/html、store/src みたいな配置になっているものを .htaccess とmod_rewriteでゴニョゴニョするイメージ。

でしたが、もろもろご意見みてますと 2のほうの対応が不十分な状況であることと、mod_rewriteが使えない環境でどう動かすかという課題で
前提条件のレンタルサーバーの要件が未設定だと思いますので、

まずは、以下のように定めさせてください

  • .htaccess のDenyが利用できないような環境はNG
  • .htaccess の中で mod_rewrite が使えない環境は動作環境として認める
  • .htaccess のみならず、 IISのweb.configも同様の条件とする

なお、今のところ3系の動作検証を社内でおこなったサーバーでこの条件に合致しないようなサーバーはありませんでした。

この環境下で

  • html がつかないURLで安全に運用できる
  • 現在利用しているEC-CUBE3のサイトがアップデート対応できる

ような改善が行えれればと思います。

ちなみに、当初のディレクトリ構成でも近しい議論があったので、参考までに。
#201

@ryo-endo ryo-endo added the question label Jul 28, 2016

@ryo-endo ryo-endo added this to the 3.x milestone Aug 1, 2016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment