NP_ContentsList を NP_CustomURL に対応させる方法 謎のトラックバック
Aug 23
NP_CustomURL 作っといてなんなんですが、コードの整理してるときに今更気づきました
mod_Rewrite が使えるんなら、FancyURL の専用ファイルなんていらないことに……

やり方は簡単
index.php の $CONF['Self'] を、説明にあるとおり 「''」にして、グローバル設定でモードを Fancy にする
で、.htaccess に
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]

と書く

いじょ


ForceType application/x-httpd-php


とかだらだら書かなくていいし、拡張子なしのファイルもいらない
そのうえ fancyurls.config.php もいらないからオドロキです

「category」とか「item」とかのカスタマイズは出来ませんが、ルートディレクトリにファイルが増えるのは嫌だけど、プラグインを入れたくない人は試してみてはいかが?

6 Responses to “ チョー簡単な FancyURL 実現方法 ”

  1. yama Says:
    そ、そうですよね。やっぱし。
    何がやっぱりかというと、.htaccessのこの4行パターンって他のCMSでも時々見かけることがあるからなんですが。
  2. しづき Says:
    そうなんですよ
    $CONF['~Key'] が固定でよければ、それらは全て globalfunctions.php で設定されているわけで、PATH_INFO 存在しないファイル名やらディレクトリ名が入ってる場合にそれが Nucleus 内部に渡るようにさえしてやれば、あとはコアが処理してくれるように作ってあるんですよ

    そもそも fancyurls.config.php で設定しても反映されない場合があるのはそのせいなんですよね
  3. yu Says:
    あれ、この件ってNucleusのドキュメントにそう書いてないですか?
    誤読されがちなのかしらん。
  4. yu Says:
    ああ、ちょっと見落としてました。なるほどそういうことか!
    mod_rewriteでURL修飾するときは元々専用ファイルはいらないですけど、
    (documentation/tips.html#searchengines-rewrite )
    従来のFancyURLとmod_rewriteの設定の手軽さのハイブリッドが可能ってことですね?
  5. しづき Says:
    > 従来のFancyURLとmod_rewriteの設定の手軽さのハイブリッドが可能ってことですね?
    そうなんです!
    ModRewriteが使えるサーバでFancyURLする場合は、ModRewriteのルールを書くだけで、従来のFancyURLが使えるんです
    標準で用意されていないもの(『tag』とか『subcatid』とか)は無視されてしまうんで、それぞれのプラグインで処理してやら無いとダメなんですけどね ;-p
  6. yu Says:
    なるほど、これは便利ですね。
    いつからこんなことできるようになってたんだろ・・。

Leave a Reply

OpenID を使ってログインすることができます。

Identity URL:



Web Services by Yahoo! JAPAN

このエントリにトラックバックはありません

この記事のトラックバックURL
http://shizuki.kinezumi.net/item_278.trackback(右クリックで'ショートカットの保存')
トラックバックするにはこの記事へのリンクhttp://shizuki.kinezumi.net/item_278.htmlが必要です