日本語のページ追加で、ページパスが日本語になるとページが表示されません。

2012年5月13日 at 5:23

concrete5の最新バージョンで、日本語ページを追加したとき、
ページ追加で、ページパスが日本語だとページが表示されません。

静的なページは、設定でページパスをアルファベットに修正すると問題なく表示されるのですが、
コンポーザーを使って記事ページを作成しないといけないので、
日本語のページパスは必須です。

文字コードを確認したところ、utf8でcssも、データベースも設定できてますし、
php.iniもサーバーにアップしてます。

試しにローカル(MAMP)にサイト丸ごとコピーして確認したところ、問題なかったので、
データベースを再設置したり、concrete5を再インストールしたのですが、
やはり同じくページパスが日本語だとPage Not Foundになります。

サーバーは、
KDDIホスティング G200
http://www.kddi.com/pub/hosting-g/service/G200.html

に、ドメイン移管前なので、初期ドメイン内に設置しています。
原因が分かる方がいらっしゃいましたら、宜しくお願い致します。

タグ:

Re: 日本語のページ追加で、ページパスが日本語になるとページが表示されません。

2012年5月13日 at 7:57
すみません。確認させてください。

・最新版とは 5.5.2.1.ja

・「編集」->「新規ページ」で作成した場合、ページパスを日本語で作成はできるがサイトマップから移動するとページが表示されない

・ローカル(MAMP)では日本語URLでの作成は問題なく、サイトマップからも移動できるのでレンタルサーバー上のみ問題がおきている。

上記の解釈で間違いないでしょうか?
 

Re: 日本語のページ追加で、ページパスが日本語になるとページが表示されません。

2012年5月13日 at 11:15
•バージョンは5.5.2.1.jaです。
•編集→新規ページでも、ページパスが日本語であれば同じくエラーになります。コンポーザーで日本語タイトルでページ追加してもNot Foundになります。
•レンタルサーバー上のみの問題のようです。
今、hissyさんの投稿みながら試してます。
 

Re: 日本語のページ追加で、ページパスが日本語になるとページが表示されません。

2012年5月13日 at 8:31
KDDIホスティング G200 は、ApacheではなくてWindows IISのようですね。
http://www.kddi.com/pub/hosting-g/faq/list.html#faqF14

concrete5はIISは公式にはサポートしていませんし、我々日本語版開発チームもテストしていません。ということを前提で、このスレッドで対策を考えていきましょうか…となるわけですが。

で、URLに関しては、Apacheのmod_rewriteという機能を使っています。
通常のインストールでは.htaccessに下記のようなmod_rewriteのルールが記載されます。MAMPはApacheなので、これで正常に動作します。
# -- concrete5 urls start --
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}/index.html !-f
RewriteCond %{REQUEST_FILENAME}/index.php !-f
RewriteRule . index.php [L]
</IfModule>
# -- concrete5 urls end --


まず、上記ヘルプで「ISAPI_Rewriteのルールを記述する」と記載されています。

ググって出てきたこのページを見ると、先頭に [ISAPI_Rewrite] と書かないといけないらしいです。「Apacheのmod_rewriteと微妙に違う」というのが気になりますが、試してみていただけますか?
http://pentan.info/server/windows/iis/isapi_rewrite.html


あと、本家のHow-toでもWindows IISでプリティURLを動作させる方法が書かれていました。
http://www.concrete5.org/documentation/how-tos/editors/enable-pretty-urls-in-windows-iis/

concrete5の管理画面に表示される、プリティURLを有効にするリライトルールはApache Webサーバーのために書かれたものです。しかし、Windows IISで動作するルールを簡単に得ることができます。MicrosoftがApacheの書式からの変換ユーティリティを用意していて、我々も使うことができます。


ここで言及されている「URL書き換えモジュール」は、G200で使うことができますでしょうか?
http://technet.microsoft.com/ja-jp/iis/ee854973.aspx
 

Re: 日本語のページ追加で、ページパスが日本語になるとページが表示されません。

2012年5月13日 at 11:54
返信ありがとうございます。
.htaccessに
[ISAPI_Rewrite]
# -- concrete5 urls start --
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}/index.html !-f
RewriteCond %{REQUEST_FILENAME}/index.php !-f
RewriteRule . index.php [L]
</IfModule>
# -- concrete5 urls end --
を記述してwwwroot直下に設置してみましたが、特に効果はありませんでした。

URL書き換えモジュールは
http://technet.microsoft.com/ja-jp/iis/ee854973.aspx
G200のコントローラーパネル上に設置できそうな箇所がなく、どう設置すれば良いかわかりませんでした。

本家How to変換ユーティリティというのは上記のことなのでしょうか…。
そもそもURL変換モジュールの仕組みと、本来設置されている場所自体が分かってないかもしれないです。
どうぞ宜しくお願い致します。
 

Re: 日本語のページ追加で、ページパスが日本語になるとページが表示されません。

2012年5月13日 at 12:07
私もIISは全く使ったことがないので分からない同士ですw
そもそもプリティURLを有効にしてらっしゃいますか?まずココを確認していただければありがたいです。有効になっていたら、いったん無効に。

URL書き換えモジュールはKDDIホスティングでは対応してないのかもしれないですね。
他の情報を探してみます。
 

Re: 日本語のページ追加で、ページパスが日本語になるとページが表示されません。

2012年5月13日 at 12:24
プリティURLもともと無効だったので、試しに有効にしてみたところ、PHPエラー(おそらく.htaccessの影響)がでて、一部表示できていたページがNotfoundになりました。無効に戻したら一旦元にもどりましたが、よく考えるとconcrete5を再インストールする際、データベースを復元させる際も似たエラーがでておりました。問題なく復元できていたので放置してましたが…。
 

Re: 日本語のページ追加で、ページパスが日本語になるとページが表示されません。

2012年5月14日 at 12:13
WindowsIISのバージョンは6.0でしたので、下記の記事と同じエラーだと考えてます。
http://concrete5-japan.org/community/forums/chat/post-1300/post-1301/post-1328/
 

Re: 日本語のページ追加で、ページパスが日本語になるとページが表示されません。

2012年5月15日 at 23:02
英語版を使ってみるというのはどうでしょうか?

日本語版は今までのバージョンの経緯などを加味して日本語URLを可能にしています。
もし、日本語URLの問題だけで稼動しないなら英語版を使用するというのも一つかもしれません。
KDDIホスティングでの動作はわかりませんが、英語版はページのタイトル(名前)を全角にした場合
URLは数字になりますのでURLに全角が使用されません。
デメリットとしては、日本語言語ファイルを導入しても一部英語になる、検索機能の一部が使えないなどです。
 

Re: 日本語のページ追加で、ページパスが日本語になるとページが表示されません。

2012年5月15日 at 23:30
ページ名(日本語URL)に/や.などの半角記号を入れるとそう言う事が起きる可能性があります。
 

Re: 日本語のページ追加で、ページパスが日本語になるとページが表示されません。

2012年6月22日 at 21:16
古いスレッドに返信します。
IIS上で利用している方に少しでもお力らになれれば幸いです。

この件、確実ではありませんが動作する可能性がります。
(IIS7未満の場合は特にです。)

IIS6のお話でしたら、レジストリの
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\w3svc\Parameters
に複数行文字列値(REG_MULTI_SZ)を「FastCGIUtf8ServerVariables」の名称で作成し
内容は、
REQUEST_URI
PATH_INFO

の上記2行を設定してください。
(設定後再起動してください)

IIS7以降の場合、
http://support.microsoft.com/kb/2277918/ja
を参照ください。

MSへの申請になりますが、パッチが入手できます。

また、2008R2の場合、問題になるバージョン以降のFastCGIのDLLが入っていると思います。
その場合、先に書いたレジストリを入力してください。

これで、日本語のURLが有効になるはずです。

一昨日に、この素晴らしいCMSに出会いました。

レスのタイミングが遅すぎますが、何かの足しにしてください。
 

Re: Re: 日本語のページ追加で、ページパスが日本語になるとページが表示されません。

2012年6月23日 at 18:55
情報提供ありがとうございます!