PageRenderTime 50ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 1ms

/pukiwiki.ini.php

https://github.com/kaneko/rbwiki
PHP | 533 lines | 147 code | 126 blank | 260 comment | 5 complexity | 501feecbfe93c2b1c17caabc2d9633bf MD5 | raw file
Possible License(s): GPL-2.0
  1. <?php
  2. // PukiWiki - Yet another WikiWikiWeb clone
  3. // $Id: pukiwiki.ini.php,v 1.140 2006/06/11 14:35:39 henoheno Exp $
  4. // Copyright (C)
  5. // 2002-2006 PukiWiki Developers Team
  6. // 2001-2002 Originally written by yu-ji
  7. // License: GPL v2 or (at your option) any later version
  8. //
  9. // PukiWiki main setting file
  10. /////////////////////////////////////////////////
  11. // Functionality settings
  12. // PKWK_OPTIMISE - Ignore verbose but understandable checking and warning
  13. // If you end testing this PukiWiki, set '1'.
  14. // If you feel in trouble about this PukiWiki, set '0'.
  15. if (! defined('PKWK_OPTIMISE'))
  16. define('PKWK_OPTIMISE', 0);
  17. /////////////////////////////////////////////////
  18. // Security settings
  19. // PKWK_READONLY - Prohibits editing and maintain via WWW
  20. // NOTE: Counter-related functions will work now (counter, attach count, etc)
  21. if (! defined('PKWK_READONLY'))
  22. define('PKWK_READONLY', 0); // 0 or 1
  23. // PKWK_SAFE_MODE - Prohibits some unsafe(but compatible) functions
  24. if (! defined('PKWK_SAFE_MODE'))
  25. define('PKWK_SAFE_MODE', 0);
  26. // PKWK_DISABLE_INLINE_IMAGE_FROM_URI - Disallow using inline-image-tag for URIs
  27. // Inline-image-tag for URIs may allow leakage of Wiki readers' information
  28. // (in short, 'Web bug') or external malicious CGI (looks like an image's URL)
  29. // attack to Wiki readers, but easy way to show images.
  30. if (! defined('PKWK_DISABLE_INLINE_IMAGE_FROM_URI'))
  31. define('PKWK_DISABLE_INLINE_IMAGE_FROM_URI', 0);
  32. // PKWK_QUERY_STRING_MAX
  33. // Max length of GET method, prohibits some worm attack ASAP
  34. // NOTE: Keep (page-name + attach-file-name) <= PKWK_QUERY_STRING_MAX
  35. define('PKWK_QUERY_STRING_MAX', 640); // Bytes, 0 = OFF
  36. /////////////////////////////////////////////////
  37. // Experimental features
  38. // Multiline plugin hack (See BugTrack2/84)
  39. // EXAMPLE(with a known BUG):
  40. // #plugin(args1,args2,...,argsN){{
  41. // argsN+1
  42. // argsN+1
  43. // #memo(foo)
  44. // argsN+1
  45. // }}
  46. // #memo(This makes '#memo(foo)' to this)
  47. define('PKWKEXP_DISABLE_MULTILINE_PLUGIN_HACK', 1); // 1 = Disabled
  48. /////////////////////////////////////////////////
  49. // Language / Encoding settings
  50. // LANG - Internal content encoding ('en', 'ja', or ...)
  51. define('LANG', 'ja');
  52. // UI_LANG - Content encoding for buttons, menus, etc
  53. define('UI_LANG', LANG); // 'en' for Internationalized wikisite
  54. /////////////////////////////////////////////////
  55. // Directory settings I (ended with '/', permission '777')
  56. // You may hide these directories (from web browsers)
  57. // by setting DATA_HOME at index.php.
  58. define('DATA_DIR', DATA_HOME . 'wiki/' ); // Latest wiki texts
  59. define('DIFF_DIR', DATA_HOME . 'diff/' ); // Latest diffs
  60. define('BACKUP_DIR', DATA_HOME . 'backup/' ); // Backups
  61. define('CACHE_DIR', DATA_HOME . 'cache/' ); // Some sort of caches
  62. define('UPLOAD_DIR', DATA_HOME . 'attach/' ); // Attached files and logs
  63. define('COUNTER_DIR', DATA_HOME . 'counter/' ); // Counter plugin's counts
  64. define('TRACKBACK_DIR', DATA_HOME . 'trackback/'); // TrackBack logs
  65. define('PLUGIN_DIR', DATA_HOME . 'plugin/' ); // Plugin directory
  66. /////////////////////////////////////////////////
  67. // Directory settings II (ended with '/')
  68. // Skins / Stylesheets
  69. define('SKIN_DIR', 'skin/');
  70. // Skin files (SKIN_DIR/*.skin.php) are needed at
  71. // ./DATAHOME/SKIN_DIR from index.php, but
  72. // CSSs(*.css) and JavaScripts(*.js) are needed at
  73. // ./SKIN_DIR from index.php.
  74. // Static image files
  75. define('IMAGE_DIR', 'image/');
  76. // Keep this directory shown via web browsers like
  77. // ./IMAGE_DIR from index.php.
  78. /////////////////////////////////////////////////
  79. // Local time setting
  80. switch (LANG) { // or specifiy one
  81. case 'ja':
  82. define('ZONE', 'JST');
  83. define('ZONETIME', 9 * 3600); // JST = GMT + 9
  84. break;
  85. default :
  86. define('ZONE', 'GMT');
  87. define('ZONETIME', 0);
  88. break;
  89. }
  90. /////////////////////////////////////////////////
  91. // Title of your Wikisite (Name this)
  92. // Also used as RSS feed's channel name etc
  93. $page_title = 'PukiWiki';
  94. // Specify PukiWiki URL (default: auto)
  95. //$script = 'http://example.com/pukiwiki/';
  96. // Shorten $script: Cut its file name (default: not cut)
  97. //$script_directory_index = 'index.php';
  98. // Site admin's name (CHANGE THIS)
  99. $modifier = 'anonymous';
  100. // Site admin's Web page (CHANGE THIS)
  101. $modifierlink = 'http://pukiwiki.example.com/';
  102. // Default page name
  103. $defaultpage = 'FrontPage'; // Top / Default page
  104. $whatsnew = 'RecentChanges'; // Modified page list
  105. $whatsdeleted = 'RecentDeleted'; // Removeed page list
  106. $interwiki = 'InterWikiName'; // Set InterWiki definition here
  107. $menubar = 'MenuBar'; // Menu
  108. /////////////////////////////////////////////////
  109. // Change default Document Type Definition
  110. // Some web browser's bug, and / or Java apprets may needs not-Strict DTD.
  111. // Some plugin (e.g. paint) set this PKWK_DTD_XHTML_1_0_TRANSITIONAL.
  112. //$pkwk_dtd = PKWK_DTD_XHTML_1_1; // Default
  113. //$pkwk_dtd = PKWK_DTD_XHTML_1_0_STRICT;
  114. //$pkwk_dtd = PKWK_DTD_XHTML_1_0_TRANSITIONAL;
  115. //$pkwk_dtd = PKWK_DTD_HTML_4_01_STRICT;
  116. //$pkwk_dtd = PKWK_DTD_HTML_4_01_TRANSITIONAL;
  117. /////////////////////////////////////////////////
  118. // Always output "nofollow,noindex" attribute
  119. $nofollow = 0; // 1 = Try hiding from search engines
  120. /////////////////////////////////////////////////
  121. // PKWK_ALLOW_JAVASCRIPT - Allow / Prohibit using JavaScript
  122. define('PKWK_ALLOW_JAVASCRIPT', 0);
  123. /////////////////////////////////////////////////
  124. // TrackBack feature
  125. // Enable Trackback
  126. $trackback = 0;
  127. // Show trackbacks with an another window (using JavaScript)
  128. $trackback_javascript = 0;
  129. /////////////////////////////////////////////////
  130. // Referer list feature
  131. $referer = 0;
  132. /////////////////////////////////////////////////
  133. // _Disable_ WikiName auto-linking
  134. $nowikiname = 0;
  135. /////////////////////////////////////////////////
  136. // AutoLink feature
  137. // AutoLink minimum length of page name
  138. $autolink = 0; // Bytes, 0 = OFF (try 8)
  139. /////////////////////////////////////////////////
  140. // Enable Freeze / Unfreeze feature
  141. $function_freeze = 1;
  142. /////////////////////////////////////////////////
  143. // Allow to use 'Do not change timestamp' checkbox
  144. // (0:Disable, 1:For everyone, 2:Only for the administrator)
  145. $notimeupdate = 1;
  146. /////////////////////////////////////////////////
  147. // Admin password for this Wikisite
  148. // Default: always fail
  149. $adminpass = '{x-php-md5}!';
  150. // Sample:
  151. //$adminpass = 'pass'; // Cleartext
  152. //$adminpass = '{x-php-md5}1a1dc91c907325c69271ddf0c944bc72'; // PHP md5() 'pass'
  153. //$adminpass = '{CRYPT}$1$AR.Gk94x$uCe8fUUGMfxAPH83psCZG/'; // LDAP CRYPT 'pass'
  154. //$adminpass = '{MD5}Gh3JHJBzJcaScd3wyUS8cg=='; // LDAP MD5 'pass'
  155. //$adminpass = '{SMD5}o7lTdtHFJDqxFOVX09C8QnlmYmZnd2Qx'; // LDAP SMD5 'pass'
  156. /////////////////////////////////////////////////
  157. // Page-reading feature settings
  158. // (Automatically creating pronounce datas, for Kanji-included page names,
  159. // to show sorted page-list correctly)
  160. // Enable page-reading feature by calling ChaSen or KAKASHI command
  161. // (1:Enable, 0:Disable)
  162. $pagereading_enable = 0;
  163. // Specify converter as ChaSen('chasen') or KAKASI('kakasi') or None('none')
  164. $pagereading_kanji2kana_converter = 'none';
  165. // Specify Kanji encoding to pass data between PukiWiki and the converter
  166. $pagereading_kanji2kana_encoding = 'EUC'; // Default for Unix
  167. //$pagereading_kanji2kana_encoding = 'SJIS'; // Default for Windows
  168. // Absolute path of the converter (ChaSen)
  169. $pagereading_chasen_path = '/usr/local/bin/chasen';
  170. //$pagereading_chasen_path = 'c:\progra~1\chasen21\chasen.exe';
  171. // Absolute path of the converter (KAKASI)
  172. $pagereading_kakasi_path = '/usr/local/bin/kakasi';
  173. //$pagereading_kakasi_path = 'c:\kakasi\bin\kakasi.exe';
  174. // Page name contains pronounce data (written by the converter)
  175. $pagereading_config_page = ':config/PageReading';
  176. // Page name of default pronouncing dictionary, used when converter = 'none'
  177. $pagereading_config_dict = ':config/PageReading/dict';
  178. /////////////////////////////////////////////////
  179. // User definition
  180. $auth_users = array(
  181. // Username => password
  182. 'foo' => 'foo_passwd', // Cleartext
  183. 'bar' => '{x-php-md5}f53ae779077e987718cc285b14dfbe86', // PHP md5() 'bar_passwd'
  184. 'hoge' => '{SMD5}OzJo/boHwM4q5R+g7LCOx2xGMkFKRVEx', // LDAP SMD5 'hoge_passwd'
  185. );
  186. /////////////////////////////////////////////////
  187. // Authentication method
  188. $auth_method_type = 'pagename'; // By Page name
  189. //$auth_method_type = 'contents'; // By Page contents
  190. /////////////////////////////////////////////////
  191. // Read auth (0:Disable, 1:Enable)
  192. $read_auth = 0;
  193. $read_auth_pages = array(
  194. // Regex Username
  195. '#HogeHoge#' => 'hoge',
  196. '#(NETABARE|NetaBare)#' => 'foo,bar,hoge',
  197. );
  198. /////////////////////////////////////////////////
  199. // Edit auth (0:Disable, 1:Enable)
  200. $edit_auth = 0;
  201. $edit_auth_pages = array(
  202. // Regex Username
  203. '#BarDiary#' => 'bar',
  204. '#HogeHoge#' => 'hoge',
  205. '#(NETABARE|NetaBare)#' => 'foo,bar,hoge',
  206. );
  207. /////////////////////////////////////////////////
  208. // Search auth
  209. // 0: Disabled (Search read-prohibited page contents)
  210. // 1: Enabled (Search only permitted pages for the user)
  211. $search_auth = 0;
  212. /////////////////////////////////////////////////
  213. // $whatsnew: Max number of RecentChanges
  214. $maxshow = 60;
  215. // $whatsdeleted: Max number of RecentDeleted
  216. // (0 = Disabled)
  217. $maxshow_deleted = 60;
  218. /////////////////////////////////////////////////
  219. // Page names can't be edit via PukiWiki
  220. $cantedit = array( $whatsnew, $whatsdeleted );
  221. /////////////////////////////////////////////////
  222. // HTTP: Output Last-Modified header
  223. $lastmod = 0;
  224. /////////////////////////////////////////////////
  225. // Date format
  226. $date_format = 'Y-m-d';
  227. // Time format
  228. $time_format = 'H:i:s';
  229. /////////////////////////////////////////////////
  230. // Max number of RSS feed
  231. $rss_max = 15;
  232. /////////////////////////////////////////////////
  233. // Backup related settings
  234. // Enable backup
  235. $do_backup = 1;
  236. // When a page had been removed, remove its backup too?
  237. $del_backup = 0;
  238. // Bacukp interval and generation
  239. $cycle = 3; // Wait N hours between backup (0 = no wait)
  240. $maxage = 120; // Stock latest N backups
  241. // NOTE: $cycle x $maxage / 24 = Minimum days to lost your data
  242. // 3 x 120 / 24 = 15
  243. // Splitter of backup data (NOTE: Too dangerous to change)
  244. define('PKWK_SPLITTER', '>>>>>>>>>>');
  245. /////////////////////////////////////////////////
  246. // Command execution per update
  247. define('PKWK_UPDATE_EXEC', '');
  248. // Sample: Namazu (Search engine)
  249. //$target = '/var/www/wiki/';
  250. //$mknmz = '/usr/bin/mknmz';
  251. //$output_dir = '/var/lib/namazu/index/';
  252. //define('PKWK_UPDATE_EXEC',
  253. // $mknmz . ' --media-type=text/pukiwiki' .
  254. // ' -O ' . $output_dir . ' -L ja -c -K ' . $target);
  255. /////////////////////////////////////////////////
  256. // HTTP proxy setting (for TrackBack etc)
  257. // Use HTTP proxy server to get remote data
  258. $use_proxy = 0;
  259. $proxy_host = 'proxy.example.com';
  260. $proxy_port = 8080;
  261. // Do Basic authentication
  262. $need_proxy_auth = 0;
  263. $proxy_auth_user = 'username';
  264. $proxy_auth_pass = 'password';
  265. // Hosts that proxy server will not be needed
  266. $no_proxy = array(
  267. 'localhost', // localhost
  268. '127.0.0.0/8', // loopback
  269. // '10.0.0.0/8' // private class A
  270. // '172.16.0.0/12' // private class B
  271. // '192.168.0.0/16' // private class C
  272. // 'no-proxy.com',
  273. );
  274. ////////////////////////////////////////////////
  275. // Mail related settings
  276. // Send mail per update of pages
  277. $notify = 0;
  278. // Send diff only
  279. $notify_diff_only = 1;
  280. // SMTP server (Windows only. Usually specified at php.ini)
  281. $smtp_server = 'localhost';
  282. // Mail recipient (To:) and sender (From:)
  283. $notify_to = 'to@example.com'; // To:
  284. $notify_from = 'from@example.com'; // From:
  285. // Subject: ($page = Page name wll be replaced)
  286. $notify_subject = '[PukiWiki] $page';
  287. // Mail header
  288. // NOTE: Multiple items must be divided by "\r\n", not "\n".
  289. $notify_header = '';
  290. /////////////////////////////////////////////////
  291. // Mail: POP / APOP Before SMTP
  292. // Do POP/APOP authentication before send mail
  293. $smtp_auth = 0;
  294. $pop_server = 'localhost';
  295. $pop_port = 110;
  296. $pop_userid = '';
  297. $pop_passwd = '';
  298. // Use APOP instead of POP (If server uses)
  299. // Default = Auto (Use APOP if possible)
  300. // 1 = Always use APOP
  301. // 0 = Always use POP
  302. // $pop_auth_use_apop = 1;
  303. /////////////////////////////////////////////////
  304. // Ignore list
  305. // Regex of ignore pages
  306. $non_list = '^\:';
  307. // Search ignored pages
  308. $search_non_list = 1;
  309. /////////////////////////////////////////////////
  310. // Template setting
  311. $auto_template_func = 1;
  312. $auto_template_rules = array(
  313. '((.+)\/([^\/]+))' => '\2/template'
  314. );
  315. /////////////////////////////////////////////////
  316. // Automatically add fixed heading anchor
  317. $fixed_heading_anchor = 1;
  318. /////////////////////////////////////////////////
  319. // Remove the first spaces from Preformatted text
  320. $preformat_ltrim = 1;
  321. /////////////////////////////////////////////////
  322. // Convert linebreaks into <br />
  323. $line_break = 0;
  324. /////////////////////////////////////////////////
  325. // Use date-time rules (See rules.ini.php)
  326. $usedatetime = 1;
  327. /////////////////////////////////////////////////
  328. // User-Agent settings
  329. //
  330. // If you want to ignore embedded browsers for rich-content-wikisite,
  331. // remove (or comment-out) all 'keitai' settings.
  332. //
  333. // If you want to to ignore desktop-PC browsers for simple wikisite,
  334. // copy keitai.ini.php to default.ini.php and customize it.
  335. $agents = array(
  336. // pattern: A regular-expression that matches device(browser)'s name and version
  337. // profile: A group of browsers
  338. // Embedded browsers (Rich-clients for PukiWiki)
  339. // Windows CE (Microsoft(R) Internet Explorer 5.5 for Windows(R) CE)
  340. // Sample: "Mozilla/4.0 (compatible; MSIE 5.5; Windows CE; sigmarion3)" (sigmarion, Hand-held PC)
  341. array('pattern'=>'#\b(?:MSIE [5-9]).*\b(Windows CE)\b#', 'profile'=>'default'),
  342. // ACCESS "NetFront" / "Compact NetFront" and thier OEM, expects to be "Mozilla/4.0"
  343. // Sample: "Mozilla/4.0 (PS2; PlayStation BB Navigator 1.0) NetFront/3.0" (PlayStation BB Navigator, for SONY PlayStation 2)
  344. // Sample: "Mozilla/4.0 (PDA; PalmOS/sony/model crdb/Revision:1.1.19) NetFront/3.0" (SONY Clie series)
  345. // Sample: "Mozilla/4.0 (PDA; SL-A300/1.0,Embedix/Qtopia/1.1.0) NetFront/3.0" (SHARP Zaurus)
  346. array('pattern'=>'#^(?:Mozilla/4).*\b(NetFront)/([0-9\.]+)#', 'profile'=>'default'),
  347. // Embedded browsers (Non-rich)
  348. // Windows CE (the others)
  349. // Sample: "Mozilla/2.0 (compatible; MSIE 3.02; Windows CE; 240x320 )" (GFORT, NTT DoCoMo)
  350. array('pattern'=>'#\b(Windows CE)\b#', 'profile'=>'keitai'),
  351. // ACCESS "NetFront" / "Compact NetFront" and thier OEM
  352. // Sample: "Mozilla/3.0 (AveFront/2.6)" ("SUNTAC OnlineStation", USB-Modem for PlayStation 2)
  353. // Sample: "Mozilla/3.0(DDIPOCKET;JRC/AH-J3001V,AH-J3002V/1.0/0100/c50)CNF/2.0" (DDI Pocket: AirH" Phone by JRC)
  354. array('pattern'=>'#\b(NetFront)/([0-9\.]+)#', 'profile'=>'keitai'),
  355. array('pattern'=>'#\b(CNF)/([0-9\.]+)#', 'profile'=>'keitai'),
  356. array('pattern'=>'#\b(AveFront)/([0-9\.]+)#', 'profile'=>'keitai'),
  357. array('pattern'=>'#\b(AVE-Front)/([0-9\.]+)#', 'profile'=>'keitai'), // The same?
  358. // NTT-DoCoMo, i-mode (embeded Compact NetFront) and FOMA (embedded NetFront) phones
  359. // Sample: "DoCoMo/1.0/F501i", "DoCoMo/1.0/N504i/c10/TB/serXXXX" // c以降は可変
  360. // Sample: "DoCoMo/2.0 MST_v_SH2101V(c100;TB;W22H12;serXXXX;iccxxxx)" // ()の中は可変
  361. array('pattern'=>'#^(DoCoMo)/([0-9\.]+)#', 'profile'=>'keitai'),
  362. // Vodafone's embedded browser
  363. // Sample: "J-PHONE/2.0/J-T03" // 2.0は"ブラウザの"バージョン
  364. // Sample: "J-PHONE/4.0/J-SH51/SNxxxx SH/0001a Profile/MIDP-1.0 Configuration/CLDC-1.0 Ext-Profile/JSCL-1.1.0"
  365. array('pattern'=>'#^(J-PHONE)/([0-9\.]+)#', 'profile'=>'keitai'),
  366. // Openwave(R) Mobile Browser (EZweb, WAP phone, etc)
  367. // Sample: "OPWV-SDK/62K UP.Browser/6.2.0.5.136 (GUI) MMP/2.0"
  368. array('pattern'=>'#\b(UP\.Browser)/([0-9\.]+)#', 'profile'=>'keitai'),
  369. // Opera, dressing up as other embedded browsers
  370. // Sample: "Mozilla/3.0(DDIPOCKET;KYOCERA/AH-K3001V/1.4.1.67.000000/0.1/C100) Opera 7.0" (Like CNF at 'keitai'-mode)
  371. array('pattern'=>'#\b(?:DDIPOCKET|WILLCOM)\b.+\b(Opera) ([0-9\.]+)\b#', 'profile'=>'keitai'),
  372. // Planetweb http://www.planetweb.com/
  373. // Sample: "Mozilla/3.0 (Planetweb/v1.07 Build 141; SPS JP)" ("EGBROWSER", Web browser for PlayStation 2)
  374. array('pattern'=>'#\b(Planetweb)/v([0-9\.]+)#', 'profile'=>'keitai'),
  375. // DreamPassport, Web browser for SEGA DreamCast
  376. // Sample: "Mozilla/3.0 (DreamPassport/3.0)"
  377. array('pattern'=>'#\b(DreamPassport)/([0-9\.]+)#', 'profile'=>'keitai'),
  378. // Palm "Web Pro" http://www.palmone.com/us/support/accessories/webpro/
  379. // Sample: "Mozilla/4.76 [en] (PalmOS; U; WebPro)"
  380. array('pattern'=>'#\b(WebPro)\b#', 'profile'=>'keitai'),
  381. // ilinx "Palmscape" / "Xiino" http://www.ilinx.co.jp/
  382. // Sample: "Xiino/2.1SJ [ja] (v. 4.1; 153x130; c16/d)"
  383. array('pattern'=>'#^(Palmscape)/([0-9\.]+)#', 'profile'=>'keitai'),
  384. array('pattern'=>'#^(Xiino)/([0-9\.]+)#', 'profile'=>'keitai'),
  385. // SHARP PDA Browser (SHARP Zaurus)
  386. // Sample: "sharp pda browser/6.1[ja](MI-E1/1.0) "
  387. array('pattern'=>'#^(sharp [a-z]+ browser)/([0-9\.]+)#', 'profile'=>'keitai'),
  388. // WebTV
  389. array('pattern'=>'#^(WebTV)/([0-9\.]+)#', 'profile'=>'keitai'),
  390. // Desktop-PC browsers
  391. // Opera (for desktop PC, not embedded) -- See BugTrack/743 for detail
  392. // NOTE: Keep this pattern above MSIE and Mozilla
  393. // Sample: "Opera/7.0 (OS; U)" (not disguise)
  394. // Sample: "Mozilla/4.0 (compatible; MSIE 5.0; OS) Opera 6.0" (disguise)
  395. array('pattern'=>'#\b(Opera)[/ ]([0-9\.]+)\b#', 'profile'=>'default'),
  396. // MSIE: Microsoft Internet Explorer (or something disguised as MSIE)
  397. // Sample: "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
  398. array('pattern'=>'#\b(MSIE) ([0-9\.]+)\b#', 'profile'=>'default'),
  399. // Mozilla Firefox
  400. // NOTE: Keep this pattern above Mozilla
  401. // Sample: "Mozilla/5.0 (Windows; U; Windows NT 5.0; ja-JP; rv:1.7) Gecko/20040803 Firefox/0.9.3"
  402. array('pattern'=>'#\b(Firefox)/([0-9\.]+)\b#', 'profile'=>'default'),
  403. // Loose default: Including something Mozilla
  404. array('pattern'=>'#^([a-zA-z0-9 ]+)/([0-9\.]+)\b#', 'profile'=>'default'),
  405. array('pattern'=>'#^#', 'profile'=>'default'), // Sentinel
  406. );
  407. ?>