ページ 1 / 1
フレンドリーURLにしていて、コンテナ属性のリソースで、2つのファイルが出来てしまう場合の対処
Posted: 2014年5月23日(金) 10:54
by Kenny
-----
ご利用のサーバ:heteml
MODXのバージョン:1.0.13J-r1
PHPのバージョン:5.4.27
MySQLのバージョン: 5.6.13-log
ブラウザ:Firefox29
-----
お世話になります。
ありそうな質問でしたので、フォーラム内を調べてみたのですが、見つけることができませんでしたので、お願いします。
コンテナ属性のリソース、例えば…
「contents」を作成すると
/contents/
というページと
/contents.html
というファイルが生成されるようで、
/contents/
だけに統一させたい場合は、301転送という方法になってしまうのでしょうか。
googleanalyticsでアクセス解析をしていて、以前からちょっと気になっていたことです。
どうかよろしくお願いします。
Re: フレンドリーURLにしていて、コンテナ属性のリソースで、2つのファイルが出来てしまう場合の対処
Posted: 2014年5月26日(月) 11:53
by yama
コード: 全て選択
if($modx->documentObject['isfolder']==='1'&&$modx->config['make_folders']==='1'&&substr($_SERVER['REQUEST_URI'],-1)!=='/') {
$url = $modx->makeUrl($modx->documentIdentifier);
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://example.com/');
$modx->sendRedirect($url);
}
上記内容のプラグインを作成してシステムイベント OnLoadWebDocument にフックしてみてください。
(sendRedirect関数の引数を全て使えば2行でまとまりますが、分かりやすさ優先で書いてみました)
http://modx.jp/docs/tips/seo.html
カノニカル属性も設定しておくとより確実です。
また、contents.htmlというURLが実際にどこかで出力されている可能性があるなら、これを解決するのがベストだと思います。
Re: フレンドリーURLにしていて、コンテナ属性のリソースで、2つのファイルが出来てしまう場合の対処 【解決済み】
Posted: 2014年5月27日(火) 11:54
by Kenny
Yama様
いつもありがとうございます。
プラグインを制作して戴きありがとうございます!
プラグインを入れました所、うまく動くようになりました。
有難うございました。
Re: フレンドリーURLにしていて、コンテナ属性のリソースで、2つのファイルが出来てしまう場合の対処
Posted: 2014年5月27日(火) 13:19
by yama
コード: 全て選択
if($modx->documentObject['isfolder']==='1'&&$modx->config['make_folders']==='1'&&substr($_SERVER['REQUEST_URI'],-1)!=='/') {
$url = $modx->makeUrl($modx->documentIdentifier);
header('HTTP/1.1 301 Moved Permanently');
$modx->sendRedirect($url);
}
すいません、少し間違えてました。上記コードに置き換えてください
Re: フレンドリーURLにしていて、コンテナ属性のリソースで、2つのファイルが出来てしまう場合の対処
Posted: 2014年5月27日(火) 13:25
by Kenny
Yama様
有難うございます!
コードを入れ替えておきました。
キッチリ動作する事確認できました。
有難うございました。