Setup of documentation versions, remove robots restriction, updated shell script, redirects in htaccess.

This commit is contained in:
Cam Findlay 2014-12-10 15:58:56 +13:00
parent 57323db2f4
commit 1684aefe8b
11 changed files with 188 additions and 564 deletions

412
.htaccess
View File

@ -16,323 +16,139 @@
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^framework/main\.php
RewriteRule ^sapphire/?(.*) http://doc.silverstripe.org/framework/$1 [R=301,L]
# DokuWiki rewrite rules: Need to happen before other rules in order to redirect /doku.php?id=<pagename>
# to /pagename, which can then be matched by the legacy rewrite rules further down
RewriteCond %{QUERY_STRING} ^(\bid\b=([^&]*)&?(.*)?)
RewriteRule ^doku.php$ http://doc.silverstripe.org/%2?%3 [R=301,L]
# Redirect legacy URLs (assumes we're not redirecting other assets, for performance reasons)
# Note: Just works on top-level domains, not if the webroot is in a subfolder
RewriteCond %{REQUEST_URI} ^(.*)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\.(css|gif|ico|jpg|js|png|swf|txt)$
#RewriteRule ^execution-pipeline$ http://doc.silverstripe.org/framework/en/reference/ [R=301,L]
RewriteCond %{REQUEST_URI} !(3.0|2.4)
RewriteRule ^(.*)/topics/testing/create-silverstripe-test$ /$1/topics/testing/creating-a-silverstripe-test [R=301,L]
RewriteCond %{REQUEST_URI} !(3.0|2.4)
RewriteRule ^(.*)/topics/testing/create-functional-test$ /$1/topics/testing/creating-a-functional-test [R=301,L]
RewriteRule ^arraydata$ http://api.silverstripe.org/search/lookup/?q=ArrayData&module=sapphire [R=301,L]
RewriteRule ^autocompletefield$ http://api.silverstripe.org/search/lookup/?q=AutocompleteField&module=sapphire [R=301,L]
RewriteRule ^bbcode$ http://doc.silverstripe.org/framework/en/reference/ [R=301,L]
RewriteRule ^building-for-modularity$ http://doc.silverstripe.org/framework/en/topics/module-development [R=301,L]
RewriteRule ^built-in-page-controls$ http://doc.silverstripe.org/framework/en/reference/built-in-page-controls [R=301,L]
RewriteRule ^cache-control$ http://wiki.silverstripe.org/howto:cache-control [R=301,L]
RewriteRule ^casting$ http://doc.silverstripe.org/framework/en/topics/data-types [R=301,L]
RewriteRule ^checkboxfield$ http://api.silverstripe.org/search/lookup/?q=CheckboxField&module=sapphire [R=301,L]
RewriteRule ^checkboxsetfield$ http://api.silverstripe.org/search/lookup/?q=CheckboxSetField&module=sapphire [R=301,L]
RewriteRule ^checkoutpagetest$ http://doc.silverstripe.org/old/checkoutpagetest [R=301,L]
RewriteRule ^cmsmain$ http://doc.silverstripe.org/framework/en/topics/extending-the-cms [R=301,L]
RewriteRule ^cmsmenu$ http://api.silverstripe.org/search/lookup/?q=CMSMenu&module=sapphire [R=301,L]
RewriteRule ^common-problems$ http://doc.silverstripe.org/framework/en/installation/common-problems [R=301,L]
RewriteRule ^community_run_third_party_websites$ http://doc.silverstripe.org/old/community_run_third_party_websites [R=301,L]
RewriteRule ^complextablefield$ http://doc.silverstripe.org/framework/en/reference/complextablefield [R=301,L]
RewriteRule ^complextablefieldexamples$ http://doc.silverstripe.org/old/complextablefieldexamples [R=301,L]
RewriteRule ^compositefield$ http://api.silverstripe.org/search/lookup/?q=CompositeField&module=sapphire [R=301,L]
RewriteRule ^configuration$ http://doc.silverstripe.org/framework/en/topics/configuration [R=301,L]
RewriteRule ^contentdeliverynetworkissues$ http://doc.silverstripe.org/old/contentdeliverynetworkissues [R=301,L]
RewriteRule ^contentnegotiator$ http://api.silverstripe.org/search/lookup/?q=ContentNegotiator&module=sapphire [R=301,L]
RewriteRule ^contributors$ http://doc.silverstripe.org/old/contributors [R=301,L]
RewriteRule ^contributing$ http://doc.silverstripe.org/framework/en/misc/contributing [R=301,L]
RewriteRule ^controller$ http://doc.silverstripe.org/framework/en/topics/controller [R=301,L]
RewriteRule ^controllers$ http://doc.silverstripe.org/framework/en/topics/controller [R=301,L]
RewriteRule ^creating-modules$ http://doc.silverstripe.org/framework/en/topics/module-development [R=301,L]
RewriteRule ^css$ http://doc.silverstripe.org/framework/en/reference/theme-development [R=301,L]
RewriteRule ^csvbulkloader$ http://api.silverstripe.org/search/lookup/?q=CSVBulkLoader&module=sapphire [R=301,L]
RewriteRule ^currencyfield$ http://api.silverstripe.org/search/lookup/?q=CurrencyField&module=sapphire [R=301,L]
RewriteRule ^daily-builds$ http://doc.silverstripe.org/old/daily-builds [R=301,L]
RewriteRule ^data-types$ http://doc.silverstripe.org/framework/en/topics/data-types [R=301,L]
RewriteRule ^database-structure$ http://doc.silverstripe.org/framework/en/reference/database-structure [R=301,L]
RewriteRule ^database-troubleshooting$ http://doc.silverstripe.org/framework/en/reference/database-troubleshooting [R=301,L]
RewriteRule ^datamodel$ http://doc.silverstripe.org/framework/en/topics/datamodel [R=301,L]
RewriteRule ^dataobject$ http://doc.silverstripe.org/framework/en/reference/dataobject [R=301,L]
RewriteRule ^dataobjectdecorator$ http://doc.silverstripe.org/framework/en/reference/dataobjectdecorator [R=301,L]
RewriteRule ^dataobjectset$ http://doc.silverstripe.org/framework/en/reference/dataobjectset [R=301,L]
RewriteRule ^datefield$ http://api.silverstripe.org/search/lookup/?q=DateField&module=sapphire [R=301,L]
RewriteRule ^debugging$ http://doc.silverstripe.org/framework/en/topics/debugging [R=301,L]
RewriteRule ^deprecation$ http://doc.silverstripe.org/framework/en/misc/release-process [R=301,L]
RewriteRule ^director$ http://api.silverstripe.org/search/lookup/?q=Director&module=sapphire [R=301,L]
RewriteRule ^directory-structure$ http://doc.silverstripe.org/framework/en/topics/directory-structure [R=301,L]
RewriteRule ^documentation-guidelines$ http://doc.silverstripe.org/framework/en/misc/contributing [R=301,L]
RewriteRule ^dropdownfield$ http://api.silverstripe.org/search/lookup/?q=DropdownField&module=sapphire [R=301,L]
RewriteRule ^ecommercerole$ http://doc.silverstripe.org/old/ecommercerole [R=301,L]
RewriteRule ^email$ http://doc.silverstripe.org/framework/en/topics/email [R=301,L]
RewriteRule ^emailfield$ http://api.silverstripe.org/search/lookup/?q=EmailField&module=sapphire [R=301,L]
RewriteRule ^environment-management$ http://doc.silverstripe.org/framework/en/topics/environment-management [R=301,L]
RewriteRule ^error-handling$ http://doc.silverstripe.org/framework/en/topics/error-handling [R=301,L]
RewriteRule ^escape-types$ http://doc.silverstripe.org/framework/en/topics/security [R=301,L]
RewriteRule ^fieldgroup$ http://api.silverstripe.org/search/lookup/?q=FieldGroup&module=sapphire [R=301,L]
RewriteRule ^filefield$ http://api.silverstripe.org/search/lookup/?q=FileField&module=sapphire [R=301,L]
RewriteRule ^flickrservice$ http://doc.silverstripe.org/old/flickrservice [R=301,L]
RewriteRule ^form$ http://doc.silverstripe.org/framework/en/topics/forms [R=301,L]
RewriteRule ^form-field-types$ http://doc.silverstripe.org/framework/en/reference/form-field-types [R=301,L]
RewriteRule ^form-validation$ http://doc.silverstripe.org/framework/en/topics/form-validation [R=301,L]
RewriteRule ^formaction$ http://api.silverstripe.org/search/lookup/?q=FormAction&module=sapphire [R=301,L]
RewriteRule ^functionaltest$ http://api.silverstripe.org/search/lookup/?q=FunctionalTest&module=sapphire [R=301,L]
RewriteRule ^framework/en/trunk/misc/collaboration-on-git http://doc.silverstripe.org/framework/en/trunk/misc/contributing/code [R=301,L]
RewriteRule ^gsoc$ http://doc.silverstripe.org/old/gsoc [R=301,L]
RewriteRule ^hasmanycomplextablefield$ http://api.silverstripe.org/search/lookup/?q=HasManyComplexTableField&module=sapphire [R=301,L]
RewriteRule ^hasonecomplextablefield$ http://api.silverstripe.org/search/lookup/?q=HasOneComplexTableField&module=sapphire [R=301,L]
RewriteRule ^headerfield$ http://api.silverstripe.org/search/lookup/?q=HeaderField&module=sapphire [R=301,L]
RewriteRule ^head_office_boston_ma_-can_never_forget$ http://doc.silverstripe.org/old/head_office_boston_ma_-can_never_forget [R=301,L]
RewriteRule ^hiddenfield$ http://api.silverstripe.org/search/lookup/?q=HiddenField&module=sapphire [R=301,L]
RewriteRule ^hide-ancestor$ http://doc.silverstripe.org/old/hide-ancestor [R=301,L]
RewriteRule ^hierarchy$ http://api.silverstripe.org/search/lookup/?q=Hierarchy&module=sapphire [R=301,L]
RewriteRule ^how-page-security-works$ http://doc.silverstripe.org/framework/en/topics/security [R=301,L]
RewriteRule ^html$ http://doc.silverstripe.org/framework/en/topics/theme-development [R=301,L]
RewriteRule ^htmleditorconfig$ http://api.silverstripe.org/search/lookup/?q=HTMLEditorConfig&module=sapphire [R=301,L]
RewriteRule ^htmleditorfield$ http://api.silverstripe.org/search/lookup/?q=HTMLEditorField&module=sapphire [R=301,L]
RewriteRule ^i18n$ http://doc.silverstripe.org/framework/en/topics/i18n [R=301,L]
RewriteRule ^image$ http://doc.silverstripe.org/framework/en/reference/image [R=301,L]
RewriteRule ^imagefield$ http://api.silverstripe.org/search/lookup/?q=ImageField&module=sapphire [R=301,L]
RewriteRule ^installation$ http://doc.silverstripe.org/framework/en/ [R=301,L]
RewriteRule ^installation-on-lighttpd$ http://doc.silverstripe.org/framework/en/installation/lighttpd [R=301,L]
RewriteRule ^installation-on-mac-osx$ http://doc.silverstripe.org/framework/en/installation/mac-osx [R=301,L]
RewriteRule ^installation-on-nginx$ http://doc.silverstripe.org/framework/en/installation/nginx [R=301,L]
RewriteRule ^installation-on-webserver$ http://doc.silverstripe.org/framework/en/installation/webserver [R=301,L]
RewriteRule ^installation-on-windows-manual-iis$ http://doc.silverstripe.org/framework/en/installation/windows-manual-iis [R=301,L]
RewriteRule ^installation-on-windows-server-2003-iis-6$ http://doc.silverstripe.org/framework/en/installation/windows-manual-iis [R=301,L]
RewriteRule ^installation-on-windows-pi$ http://doc.silverstripe.org/framework/en/installation/windows-pi [R=301,L]
RewriteRule ^installation-on-windows-wamp$ http://doc.silverstripe.org/framework/en/installation/windows-wamp [R=301,L]
RewriteRule ^installing-modules$ http://doc.silverstripe.org/framework/en/topics/modules [R=301,L]
RewriteRule ^javascript$ http://doc.silverstripe.org/framework/en/reference/javascript [R=301,L]
RewriteRule ^jquery$ http://doc.silverstripe.org/framework/en/reference/javascript [R=301,L]
RewriteRule ^labelfield$ http://api.silverstripe.org/search/lookup/?q=LabelField&module=sapphire [R=301,L]
RewriteRule ^languagedropdownfield$ http://api.silverstripe.org/search/lookup/?q=LanguageDropdownField&module=sapphire [R=301,L]
RewriteRule ^leftandmain$ http://doc.silverstripe.org/framework/en/reference/leftandmain [R=301,L]
RewriteRule ^listboxfield$ http://api.silverstripe.org/search/lookup/?q=ListBoxField&module=sapphire [R=301,L]
RewriteRule ^literalfield$ http://api.silverstripe.org/search/lookup/?q=LiteralField&module=sapphire [R=301,L]
RewriteRule ^manifestbuilder$ http://api.silverstripe.org/search/lookup/?q=ManifestBuilder&module=sapphire [R=301,L]
RewriteRule ^member$ http://doc.silverstripe.org/framework/en/reference/member [R=301,L]
RewriteRule ^modeladmin$ http://doc.silverstripe.org/framework/en/reference/modeladmin [R=301,L]
RewriteRule ^module-maintainers$ http://doc.silverstripe.org/framework/en/misc/module-release-process [R=301,L]
RewriteRule ^module-releases$ http://doc.silverstripe.org/framework/en/misc/module-release-process [R=301,L]
RewriteRule ^module:external-content$ http://doc.silverstripe.org/old/module:external-content [R=301,L]
RewriteRule ^module:external-content-alfresco-connector$ http://doc.silverstripe.org/old/module:external-content-alfresco-connector [R=301,L]
RewriteRule ^module:external-content-newconnector$ http://doc.silverstripe.org/old/module:external-content-newconnector [R=301,L]
RewriteRule ^module:external-content-quickstart$ http://doc.silverstripe.org/old/module:external-content-quickstart [R=301,L]
RewriteRule ^module:filesystem-connector$ http://doc.silverstripe.org/old/module:filesystem-connector [R=301,L]
RewriteRule ^module:simplewiki$ http://doc.silverstripe.org/old/module:simplewiki [R=301,L]
RewriteRule ^modules:auth_ext_ad$ http://doc.silverstripe.org/old/modules:auth_ext_ad [R=301,L]
RewriteRule ^modules:auth_ext_drivers$ http://doc.silverstripe.org/old/modules:auth_ext_drivers [R=301,L]
RewriteRule ^modules:auth_ext_ldap$ http://doc.silverstripe.org/old/modules:auth_ext_ldap [R=301,L]
RewriteRule ^modules:blog$ http://doc.silverstripe.org/old/modules:blog [R=301,L]
RewriteRule ^modules:bulkuploaderfield$ http://doc.silverstripe.org/old/modules:bulkuploaderfield [R=301,L]
RewriteRule ^modules:calendar$ http://doc.silverstripe.org/old/modules:calendar [R=301,L]
RewriteRule ^modules:cmsworkflow$ http://doc.silverstripe.org/old/modules:cmsworkflow [R=301,L]
RewriteRule ^modules:dataobjectmanager$ http://doc.silverstripe.org/old/modules:dataobjectmanager [R=301,L]
RewriteRule ^modules:dbplumber$ http://doc.silverstripe.org/old/modules:dbplumber [R=301,L]
RewriteRule ^modules:diary$ http://doc.silverstripe.org/old/modules:diary [R=301,L]
RewriteRule ^modules:ecommerce$ http://doc.silverstripe.org/old/modules:ecommerce [R=301,L]
RewriteRule ^modules:embargoexpiry$ http://doc.silverstripe.org/old/modules:embargoexpiry [R=301,L]
RewriteRule ^modules:events$ http://doc.silverstripe.org/old/modules:events [R=301,L]
RewriteRule ^modules:event_calendar$ http://doc.silverstripe.org/old/modules:event_calendar [R=301,L]
RewriteRule ^modules:external-authentication$ http://doc.silverstripe.org/old/modules:external-authentication [R=301,L]
RewriteRule ^modules:flickrgallery$ http://doc.silverstripe.org/old/modules:flickrgallery [R=301,L]
RewriteRule ^modules:flickrservice$ http://doc.silverstripe.org/old/modules:flickrservice [R=301,L]
RewriteRule ^modules:forum$ http://doc.silverstripe.org/old/modules:forum [R=301,L]
RewriteRule ^modules:gallery$ http://doc.silverstripe.org/old/modules:gallery [R=301,L]
RewriteRule ^modules:genericdataadmin$ http://doc.silverstripe.org/old/modules:genericdataadmin [R=301,L]
RewriteRule ^modules:genericviews$ http://doc.silverstripe.org/old/modules:genericviews [R=301,L]
RewriteRule ^modules:geocoderfield$ http://doc.silverstripe.org/old/modules:geocoderfield [R=301,L]
RewriteRule ^modules:gis$ http://doc.silverstripe.org/old/modules:gis [R=301,L]
RewriteRule ^modules:googleanalytics$ http://doc.silverstripe.org/old/modules:googleanalytics [R=301,L]
RewriteRule ^modules:googlesitemaps$ http://doc.silverstripe.org/old/modules:googlesitemaps [R=301,L]
RewriteRule ^modules:hasmanyfilemanager$ http://doc.silverstripe.org/old/modules:hasmanyfilemanager [R=301,L]
RewriteRule ^modules:image_gallery$ http://doc.silverstripe.org/old/modules:image_gallery [R=301,L]
RewriteRule ^modules:intranet$ http://doc.silverstripe.org/old/modules:intranet [R=301,L]
RewriteRule ^modules:maps$ http://doc.silverstripe.org/old/modules:maps [R=301,L]
RewriteRule ^modules:mollom$ http://doc.silverstripe.org/old/modules:mollom [R=301,L]
RewriteRule ^modules:mssql$ http://doc.silverstripe.org/old/modules:mssql [R=301,L]
RewriteRule ^modules:multiform$ http://doc.silverstripe.org/old/modules:multiform [R=301,L]
RewriteRule ^modules:newsletter$ http://doc.silverstripe.org/old/modules:newsletter [R=301,L]
RewriteRule ^modules:polls$ http://doc.silverstripe.org/old/modules:polls [R=301,L]
RewriteRule ^modules:privatemessage$ http://doc.silverstripe.org/old/modules:privatemessage [R=301,L]
RewriteRule ^modules:recaptcha$ http://doc.silverstripe.org/old/modules:recaptcha [R=301,L]
RewriteRule ^modules:securefiles$ http://doc.silverstripe.org/old/modules:securefiles [R=301,L]
RewriteRule ^modules:sharethis$ http://doc.silverstripe.org/old/modules:sharethis [R=301,L]
RewriteRule ^modules:simplehtmleditorfield$ http://doc.silverstripe.org/old/modules:simplehtmleditorfield [R=301,L]
RewriteRule ^modules:simpletreedropdownfield$ http://doc.silverstripe.org/old/modules:simpletreedropdownfield [R=301,L]
RewriteRule ^modules:simplewysiwygfield$ http://doc.silverstripe.org/old/modules:simplewysiwygfield [R=301,L]
RewriteRule ^modules:simple_guestbook$ http://doc.silverstripe.org/old/modules:simple_guestbook [R=301,L]
RewriteRule ^modules:sitetreeimporter$ http://doc.silverstripe.org/old/modules:sitetreeimporter [R=301,L]
RewriteRule ^modules:sortabledataobject$ http://doc.silverstripe.org/old/modules:sortabledataobject [R=301,L]
RewriteRule ^modules:spamprotection$ http://doc.silverstripe.org/old/modules:spamprotection [R=301,L]
RewriteRule ^modules:sphinx$ http://doc.silverstripe.org/old/modules:sphinx [R=301,L]
RewriteRule ^modules:sqlite$ http://doc.silverstripe.org/old/modules:sqlite [R=301,L]
RewriteRule ^modules:staticimporter$ http://doc.silverstripe.org/old/modules:staticimporter [R=301,L]
RewriteRule ^modules:subsites$ http://doc.silverstripe.org/old/modules:subsites [R=301,L]
RewriteRule ^modules:suggestions_field$ http://doc.silverstripe.org/old/modules:suggestions_field [R=301,L]
RewriteRule ^modules:swfuploadfield$ http://doc.silverstripe.org/old/modules:swfuploadfield [R=301,L]
RewriteRule ^modules:tagfield$ http://doc.silverstripe.org/old/modules:tagfield [R=301,L]
RewriteRule ^modules:technoratiservice$ http://doc.silverstripe.org/old/modules:technoratiservice [R=301,L]
RewriteRule ^modules:translation$ http://doc.silverstripe.org/old/modules:translation [R=301,L]
RewriteRule ^modules:userforms$ http://doc.silverstripe.org/old/modules:userforms [R=301,L]
RewriteRule ^modules:youtubeservice$ http://doc.silverstripe.org/old/modules:youtubeservice [R=301,L]
RewriteRule ^multilingualcontent$ http://doc.silverstripe.org/framework/en/topics/translation [R=301,L]
RewriteRule ^numericfield$ http://api.silverstripe.org/search/lookup/?q=NumericField&module=sapphire [R=301,L]
RewriteRule ^object$ http://api.silverstripe.org/search/lookup/?q=Object&module=sapphire [R=301,L]
RewriteRule ^objectmodel$ http://doc.silverstripe.org/framework/en/topics/datamodel [R=301,L]
RewriteRule ^optionsetfield$ http://api.silverstripe.org/search/lookup/?q=OptionSetField&module=sapphire [R=301,L]
RewriteRule ^page$ http://doc.silverstripe.org/framework/en/reference/page-types [R=301,L]
RewriteRule ^page-types$ http://doc.silverstripe.org/framework/en/topics/page-types [R=301,L]
RewriteRule ^pagecomment$ http://api.silverstripe.org/search/lookup/?q=PageComment&module=sapphire [R=301,L]
RewriteRule ^partial-caching$ http://doc.silverstripe.org/framework/en/reference/partial-caching [R=301,L]
RewriteRule ^passwordfield$ http://api.silverstripe.org/search/lookup/?q=PasswordField&module=sapphire [R=301,L]
RewriteRule ^permission$ http://doc.silverstripe.org/framework/en/reference/permission [R=301,L]
RewriteRule ^postale$ http://doc.silverstripe.org/old/postale [R=301,L]
RewriteRule ^readonlyfield$ http://api.silverstripe.org/search/lookup/?q=ReadonlyField&module=sapphire [R=301,L]
RewriteRule ^recipes:adding_metatags$ http://doc.silverstripe.org/old/recipes:adding_metatags [R=301,L]
RewriteRule ^recipes:ajax_basics$ http://doc.silverstripe.org/old/recipes:ajax_basics [R=301,L]
RewriteRule ^recipes:alphabetical_dataobjectset$ http://doc.silverstripe.org/old/recipes:alphabetical_dataobjectset [R=301,L]
RewriteRule ^recipes:alternative_sorting_order$ http://doc.silverstripe.org/old/recipes:alternative_sorting_order [R=301,L]
RewriteRule ^recipes:amazing_looking_forms_using_silverstripe_form_default_rendering$ http://doc.silverstripe.org/old/recipes:amazing_looking_forms_using_silverstripe_form_default_rendering [R=301,L]
RewriteRule ^recipes:bookmarklets$ http://doc.silverstripe.org/old/recipes:bookmarklets [R=301,L]
RewriteRule ^recipes:building_a_nice_tree_for_selected_pages$ http://doc.silverstripe.org/old/recipes:building_a_nice_tree_for_selected_pages [R=301,L]
RewriteRule ^recipes:change_site_name_and_tagline$ http://doc.silverstripe.org/old/recipes:change_site_name_and_tagline [R=301,L]
RewriteRule ^recipes:changingfields$ http://doc.silverstripe.org/old/recipes:changingfields [R=301,L]
RewriteRule ^recipes:cheat_sheet$ http://doc.silverstripe.org/old/recipes:cheat_sheet [R=301,L]
RewriteRule ^recipes:combining_files$ http://doc.silverstripe.org/old/recipes:combining_files [R=301,L]
RewriteRule ^recipes:controllers$ http://doc.silverstripe.org/old/recipes:controllers [R=301,L]
RewriteRule ^recipes:customising_image$ http://doc.silverstripe.org/old/recipes:customising_image [R=301,L]
RewriteRule ^recipes:customising_meta_tags$ http://doc.silverstripe.org/old/recipes:customising_meta_tags [R=301,L]
RewriteRule ^recipes:displaying_five_latest_pages_from_multiple_pagetypes$ http://doc.silverstripe.org/old/recipes:displaying_five_latest_pages_from_multiple_pagetypes [R=301,L]
RewriteRule ^recipes:examples_of_creating_and_saving_pages$ http://doc.silverstripe.org/old/recipes:examples_of_creating_and_saving_pages [R=301,L]
RewriteRule ^recipes:example_config_file$ http://doc.silverstripe.org/old/recipes:example_config_file [R=301,L]
RewriteRule ^recipes:example_of_data_object$ http://doc.silverstripe.org/old/recipes:example_of_data_object [R=301,L]
RewriteRule ^recipes:example_of_quotes_on_a_page$ http://doc.silverstripe.org/old/recipes:example_of_quotes_on_a_page [R=301,L]
RewriteRule ^recipes:extending_the_event_calendar$ http://doc.silverstripe.org/old/recipes:extending_the_event_calendar [R=301,L]
RewriteRule ^recipes:final_parent$ http://doc.silverstripe.org/old/recipes:final_parent [R=301,L]
RewriteRule ^recipes:forms$ http://doc.silverstripe.org/old/recipes:forms [R=301,L]
RewriteRule ^recipes:gallery$ http://doc.silverstripe.org/old/recipes:gallery [R=301,L]
RewriteRule ^recipes:grouping_fields_from_your_data_object$ http://doc.silverstripe.org/old/recipes:grouping_fields_from_your_data_object [R=301,L]
RewriteRule ^recipes:installation-into-subversion$ http://doc.silverstripe.org/old/recipes:installation-into-subversion [R=301,L]
RewriteRule ^recipes:loopthroughassets$ http://doc.silverstripe.org/old/recipes:loopthroughassets [R=301,L]
RewriteRule ^recipes:many_many-example$ http://doc.silverstripe.org/old/recipes:many_many-example [R=301,L]
RewriteRule ^recipes:members-only-page$ http://doc.silverstripe.org/old/recipes:members-only-page [R=301,L]
RewriteRule ^recipes:menus_with_different_colour_buttons$ http://doc.silverstripe.org/old/recipes:menus_with_different_colour_buttons [R=301,L]
RewriteRule ^recipes:migratefilemanager$ http://doc.silverstripe.org/old/recipes:migratefilemanager [R=301,L]
RewriteRule ^recipes:multilingual_content$ http://doc.silverstripe.org/old/recipes:multilingual_content [R=301,L]
RewriteRule ^recipes:overriding-loginform$ http://doc.silverstripe.org/old/recipes:overriding-loginform [R=301,L]
RewriteRule ^recipes:page_selection_for_special_menu$ http://doc.silverstripe.org/old/recipes:page_selection_for_special_menu [R=301,L]
RewriteRule ^recipes:pretty_i18n_urls$ http://doc.silverstripe.org/old/recipes:pretty_i18n_urls [R=301,L]
RewriteRule ^recipes:previousornext$ http://doc.silverstripe.org/old/recipes:previousornext [R=301,L]
RewriteRule ^recipes:publishing-to-web-server$ http://doc.silverstripe.org/old/recipes:publishing-to-web-server [R=301,L]
RewriteRule ^recipes:rebranding-the-cms$ http://doc.silverstripe.org/old/recipes:rebranding-the-cms [R=301,L]
RewriteRule ^recipes:removingassetsfromsearch$ http://doc.silverstripe.org/old/recipes:removingassetsfromsearch [R=301,L]
RewriteRule ^recipes:requiredfieldsclass$ http://doc.silverstripe.org/old/recipes:requiredfieldsclass [R=301,L]
RewriteRule ^recipes:retrieving_image_from_your_page$ http://doc.silverstripe.org/old/recipes:retrieving_image_from_your_page [R=301,L]
RewriteRule ^recipes:selecting_pages_with_the_same_grandparent$ http://doc.silverstripe.org/old/recipes:selecting_pages_with_the_same_grandparent [R=301,L]
RewriteRule ^recipes:setting_menu_width_dynamically$ http://doc.silverstripe.org/old/recipes:setting_menu_width_dynamically [R=301,L]
RewriteRule ^recipes:siblings$ http://doc.silverstripe.org/old/recipes:siblings [R=301,L]
RewriteRule ^recipes:simplesignupform$ http://doc.silverstripe.org/old/recipes:simplesignupform [R=301,L]
RewriteRule ^recipes:site-news$ http://doc.silverstripe.org/old/recipes:site-news [R=301,L]
RewriteRule ^recipes:start$ http://doc.silverstripe.org/old/recipes:start [R=301,L]
RewriteRule ^recipes:structural-guidelines$ http://doc.silverstripe.org/old/recipes:structural-guidelines [R=301,L]
RewriteRule ^recipes:syntax-highlighting$ http://doc.silverstripe.org/old/recipes:syntax-highlighting [R=301,L]
RewriteRule ^recipes:typography_overview$ http://doc.silverstripe.org/old/recipes:typography_overview [R=301,L]
RewriteRule ^recipes:update_records_for_a_class_using_code$ http://doc.silverstripe.org/old/recipes:update_records_for_a_class_using_code [R=301,L]
RewriteRule ^recipes:what_to_return_from_a_function$ http://doc.silverstripe.org/old/recipes:what_to_return_from_a_function [R=301,L]
RewriteRule ^recipes:widget-forms-2.3$ http://doc.silverstripe.org/old/recipes:widget-forms-2.3 [R=301,L]
RewriteRule ^releases$ http://doc.silverstripe.org/framework/en/misc/release-process [R=301,L]
RewriteRule ^requirements$ http://doc.silverstripe.org/framework/en/reference/requirements [R=301,L]
RewriteRule ^restfulserver$ http://api.silverstripe.org/search/lookup/?q=RestfulServer&module=sapphire [R=301,L]
RewriteRule ^restfulservice$ http://doc.silverstripe.org/framework/en/reference/restfulservice [R=301,L]
RewriteRule ^rssfeed$ http://doc.silverstripe.org/framework/en/reference/rssfeed [R=301,L]
RewriteRule ^sake$ http://doc.silverstripe.org/framework/en/topics/commandline [R=301,L]
RewriteRule ^searchcontext$ http://doc.silverstripe.org/framework/en/topics/search [R=301,L]
RewriteRule ^searchform$ http://doc.silverstripe.org/framework/en/topics/search [R=301,L]
RewriteRule ^secure-development$ http://doc.silverstripe.org/framework/en/topics/security [R=301,L]
RewriteRule ^security$ http://doc.silverstripe.org/framework/en/topics/security [R=301,L]
RewriteRule ^security-statement$ http://doc.silverstripe.org/old/security-statement [R=301,L]
RewriteRule ^selectiongroup$ http://api.silverstripe.org/search/lookup/?q=SelectionGroup&module=sapphire [R=301,L]
RewriteRule ^server-requirements$ http://doc.silverstripe.org/framework/en/installation/server-requirements [R=301,L]
RewriteRule ^sessions$ http://api.silverstripe.org/search/lookup/?q=Session&module=sapphire [R=301,L]
RewriteRule ^shortcodes$ http://doc.silverstripe.org/framework/en/reference/bbcode [R=301,L]
RewriteRule ^silverstripe-book-errata$ http://doc.silverstripe.org/old/silverstripe-book-errata [R=301,L]
RewriteRule ^siteconfig$ http://doc.silverstripe.org/framework/en/reference/siteconfig [R=301,L]
RewriteRule ^sitetree$ http://doc.silverstripe.org/framework/en/reference/sitetree [R=301,L]
RewriteRule ^sqlquery$ http://doc.silverstripe.org/framework/en/reference/sqlquery [R=301,L]
RewriteRule ^start$ http://doc.silverstripe.org/framework/en/ [R=301,L]
RewriteRule ^staticexporter$ http://api.silverstripe.org/search/lookup/?q=StaticExporter&module=sapphire [R=301,L]
RewriteRule ^staticpublisher$ http://doc.silverstripe.org/framework/en/reference/staticpublisher [R=301,L]
RewriteRule ^suggested-web-hosts$ http://doc.silverstripe.org/old/suggested-web-hosts [R=301,L]
RewriteRule ^subversion$ http://doc.silverstripe.org/framework/en/installation/from-source [R=301,L]
RewriteRule ^tab$ http://api.silverstripe.org/search/lookup/?q=Tab&module=sapphire [R=301,L]
RewriteRule ^tablefield$ http://doc.silverstripe.org/framework/en/reference/tablefield [R=301,L]
RewriteRule ^tablelistfield$ http://doc.silverstripe.org/framework/en/reference/tablelistfield [R=301,L]
RewriteRule ^tabset$ http://api.silverstripe.org/search/lookup/?q=TabSet&module=sapphire [R=301,L]
RewriteRule ^templates$ http://doc.silverstripe.org/framework/en/topics/templates [R=301,L]
RewriteRule ^testing-guide$ http://doc.silverstripe.org/framework/en/topics/testing/ [R=301,L]
RewriteRule ^testing-guide-glossary$ http://doc.silverstripe.org/framework/en/topics/testing/ [R=301,L]
RewriteRule ^testing-guide-intro$ http://doc.silverstripe.org/framework/en/topics/testing/testing-guide [R=301,L]
RewriteRule ^testing-guide-troubleshooting$ http://doc.silverstripe.org/framework/en/topics/testing/testing-guide-troubleshooting [R=301,L]
RewriteRule ^testing-howto:create-functional-test$ http://doc.silverstripe.org/framework/en/topics/testing/create-functional-test [R=301,L]
RewriteRule ^testing-howto:create-sapphire-test$ http://doc.silverstripe.org/framework/en/topics/testing/create-sapphire-test [R=301,L]
RewriteRule ^testing-howto:test-email-sending$ http://doc.silverstripe.org/framework/en/topics/testing/email-sending [R=301,L]
RewriteRule ^textareafield$ http://api.silverstripe.org/search/lookup/?q=TextAreaField&module=sapphire [R=301,L]
RewriteRule ^textfield$ http://api.silverstripe.org/search/lookup/?q=TextField&module=sapphire [R=301,L]
RewriteRule ^themes$ http://doc.silverstripe.org/framework/en/topics/themes [R=301,L]
RewriteRule ^themes:developing$ http://doc.silverstripe.org/framework/en/topics/theme-development [R=301,L]
RewriteRule ^third-party-packages$ http://doc.silverstripe.org/old/third-party-packages [R=301,L]
RewriteRule ^tools$ http://doc.silverstripe.org/old/tools [R=301,L]
RewriteRule ^tools:dreamweaver$ http://doc.silverstripe.org/old/tools:dreamweaver [R=301,L]
RewriteRule ^tools:eclipse$ http://doc.silverstripe.org/old/tools:eclipse [R=301,L]
RewriteRule ^tools:gedit$ http://doc.silverstripe.org/old/tools:gedit [R=301,L]
RewriteRule ^tools:netbeans$ http://doc.silverstripe.org/old/tools:netbeans [R=301,L]
RewriteRule ^tools:textmate$ http://doc.silverstripe.org/old/tools:textmate [R=301,L]
RewriteRule ^translatable$ http://doc.silverstripe.org/framework/en/topics/translation [R=301,L]
RewriteRule ^translation$ http://doc.silverstripe.org/framework/en/topics/translation [R=301,L]
RewriteRule ^treedropdownfield$ http://api.silverstripe.org/search/lookup/?q=TreeDropdownField&module=sapphire [R=301,L]
RewriteRule ^treemultiselectfield$ http://api.silverstripe.org/search/lookup/?q=TreeMultiSelectField&module=sapphire [R=301,L]
RewriteRule ^tutorial:1-building-a-basic-site$ http://doc.silverstripe.org/framework/en/tutorials/1-building-a-basic-site [R=301,L]
RewriteRule ^tutorial:2-extending-a-basic-site$ http://doc.silverstripe.org/framework/en/tutorials/2-extending-a-basic-site [R=301,L]
RewriteRule ^tutorial:3-forms$ http://doc.silverstripe.org/framework/en/tutorials/3-forms [R=301,L]
RewriteRule ^tutorial:4-site-search$ http://doc.silverstripe.org/framework/en/tutorials/4-site-search [R=301,L]
RewriteRule ^tutorial:5-dataobject-relationship-management$ http://doc.silverstripe.org/framework/en/tutorials/5-dataobject-relationship-management [R=301,L]
RewriteRule ^tutorials$ http://doc.silverstripe.org/framework/en/tutorials/ [R=301,L]
RewriteRule ^tutorials$ http://doc.silverstripe.org/framework/en/tutorials/ [R=301,L]
RewriteRule ^typography$ http://doc.silverstripe.org/framework/en/reference/typography [R=301,L]
RewriteRule ^upgrading$ http://doc.silverstripe.org/framework/en/installation/upgrading [R=301,L]
RewriteRule ^upgrading$ http://doc.silverstripe.org/framework/en/installation/upgrading/ [R=301,L]
RewriteRule ^uploadify$ http://doc.silverstripe.org/old/uploadify [R=301,L]
RewriteRule ^urlvariabletools$ http://doc.silverstripe.org/framework/en/reference/urlvariabletools [R=301,L]
RewriteRule ^validator$ http://api.silverstripe.org/search/lookup/?q=Validator&module=sapphire [R=301,L]
RewriteRule ^versioned$ http://doc.silverstripe.org/framework/en/reference/versioned [R=301,L]
RewriteRule ^videotours$ http://doc.silverstripe.org/old/videotours [R=301,L]
RewriteRule ^virtualpage$ http://api.silverstripe.org/search/lookup/?q=VirtualPage&module=sapphire [R=301,L]
RewriteRule ^widgets$ http://doc.silverstripe.org/framework/en/topics/widgets [R=301,L]
RewriteRule ^buildbot-try-server$ http://doc.silverstripe.org/old/buildbot-try-server [R=301,L]
RewriteRule ^(.*)/howto$ /$1/developer_guides [R=301,L]
RewriteRule ^(.*)/howto/cache-control$ /$1/developer_guides/performance/caching [R=301,L]
RewriteRule ^(.*)/howto/cms-alternating-button$ /$1/developer_guides/customising_the_admin_interface/how_tos/cms_alternating_button [R=301,L]
RewriteRule ^(.*)/howto/cms-formfield-help-text$ /$1/developer_guides/customising_the_admin_interface/how_tos/cms_formfield_help_text [R=301,L]
RewriteRule ^(.*)/howto/csv-import$ /$1/developer_guides/integration/csv_import [R=301,L]
RewriteRule ^(.*)/howto/customize-cms-menu$ /$1/developer_guides/customising_the_admin_interface/how_tos/customise_cms_menu [R=301,L]
RewriteRule ^(.*)/howto/customize-cms-pages-list$ /$1/developer_guides/customising_the_admin_interface/how_tos/customise_cms_pages_list [R=301,L]
RewriteRule ^(.*)/howto/customize-cms-tree$ /$1/developer_guides/customising_the_admin_interface/how_tos/customise_cms_tree [R=301,L]
RewriteRule ^(.*)/howto/dynamic-default-fields$ /$1/developer_guides/model/how_tos/dynamic_default_fields [R=301,L]
RewriteRule ^(.*)/howto/extend-cms-interface$ /$1/developer_guides/customising_the_admin_interface/how_tos/extend_cms_interface [R=301,L]
RewriteRule ^(.*)/howto/gridfield-rowaction$ /$1/developer_guides/forms/how_tos/create_a_gridfield_actionprovider [R=301,L]
RewriteRule ^(.*)/howto/grouping-dataobjectsets$ /$1/developer_guides/model/how_tos/grouping_dataobject_sets [R=301,L]
RewriteRule ^(.*)/howto/navigation-menu$ /$1/developer_guides/templates/how_tos/navigation_menus [R=301,L]
RewriteRule ^(.*)/howto/pagination$ /$1/developer_guides/templates/how_tos/pagination [R=301,L]
RewriteRule ^(.*)/howto/simple-contact-form$ /$1/developer_guides/forms/how_tos/simple_contact_form [R=301,L]
RewriteRule ^(.*)/installation$ /$1/getting_started/installation [R=301,L]
RewriteRule ^(.*)/installation/common-problems$ /$1/getting_started/installation/common_problems [R=301,L]
RewriteRule ^(.*)/installation/composer$ /$1/getting_started/composer [R=301,L]
RewriteRule ^(.*)/installation/from-source$ /$1/getting_started/installation [R=301,L]
RewriteRule ^(.*)/installation/lighttpd$ /$1/getting_started/installation/how_to/configure_lighttpd [R=301,L]
RewriteRule ^(.*)/installation/mac-osx$ /$1/getting_started/installation/mac_osx [R=301,L]
RewriteRule ^(.*)/installation/nginx$ /$1/getting_started/installation/how_to/configure_nginx [R=301,L]
RewriteRule ^(.*)/installation/nginx-hhvm$ /$1/getting_started/installation/how_to/setup_nginx_and_hhvm [R=301,L]
RewriteRule ^(.*)/installation/server-requirements$ /$1/getting_started/server_requirements [R=301,L]
RewriteRule ^(.*)/installation/upgrading$ /$1/upgrading [R=301,L]
RewriteRule ^(.*)/installation/webserver$ /$1/getting_started/installation [R=301,L]
RewriteRule ^(.*)/installation/windows-manual-iis$ /$1/getting_started/installation/windows [R=301,L]
RewriteRule ^(.*)/installation/windows-manual-iis-6$ /$1/getting_started/installation/other_installation_options/windows_iis6 [R=301,L]
RewriteRule ^(.*)/installation/windows-manual-iis-7$ /$1/getting_started/installation/other_installation_options/windows_iis7 [R=301,L]
RewriteRule ^(.*)/installation/windows-pi$ /$1/getting_started/installation/other_installation_options/windows_platform_installer [R=301,L]
RewriteRule ^(.*)/installation/windows-wamp$ /$1/getting_started/installation/windows [R=301,L]
RewriteRule ^(.*)/misc/coding-conventions$ /$1/getting_started/coding_conventions [R=301,L]
RewriteRule ^(.*)/misc/contributing$ /$1/contributing [R=301,L]
RewriteRule ^(.*)/misc/contributing/code$ /$1/contributing/code [R=301,L]
RewriteRule ^(.*)/misc/contributing/documentation$ /$1/contributing/documentation [R=301,L]
RewriteRule ^(.*)/misc/contributing/issues$ /$1/contributing/issues_and_bugs [R=301,L]
RewriteRule ^(.*)/misc/contributing/translation$ /$1/contributing/translations [R=301,L]
RewriteRule ^(.*)/misc/contributing/translation-process$ /$1/contributing/translation-process [R=301,L]
RewriteRule ^(.*)/misc/release-process$ /$1/contributing/release_process [R=301,L]
RewriteRule ^(.*)/reference$ /$1/developer_guides [R=301,L]
RewriteRule ^(.*)/reference/aspects$ /$1/developer_guides/extending/aspects [R=301,L]
RewriteRule ^(.*)/reference/cms-architecture$ /$1/developer_guides/customising_the_admin_interface/cms_architecture [R=301,L]
RewriteRule ^(.*)/reference/commandline$ /$1/developer_guides/cli [R=301,L]
RewriteRule ^(.*)/reference/configuration$ /$1/developer_guides/configuration [R=301,L]
RewriteRule ^(.*)/reference/controller$ /$1/developer_guides/controllers [R=301,L]
RewriteRule ^(.*)/reference/css$ /$1/developer_guides/templates [R=301,L]
RewriteRule ^(.*)/reference/data-types$ /$1/developer_guides/model/data_types_and_casting [R=301,L]
RewriteRule ^(.*)/reference/database-structure$ /$1/developer_guides/model [R=301,L]
RewriteRule ^(.*)/reference/dataextension$ /$1/developer_guides/extending/extensions [R=301,L]
RewriteRule ^(.*)/reference/datamodel$ /$1/developer_guides/model [R=301,L]
RewriteRule ^(.*)/reference/dataobject$ /$1/developer_guides/model [R=301,L]
RewriteRule ^(.*)/reference/datefield$ /$1/developer_guides/forms/fields/datefield [R=301,L]
RewriteRule ^(.*)/reference/debugging$ /$1/developer_guides/debugging [R=301,L]
RewriteRule ^(.*)/reference/director$ /$1/developer_guides/execution_pipeline/director [R=301,L]
RewriteRule ^(.*)/reference/email$ /$1/developer_guides/email [R=301,L]
RewriteRule ^(.*)/reference/error-handling$ /$1/developer_guides/debugging/error_handling [R=301,L]
RewriteRule ^(.*)/reference/execution-pipeline$ /$1/developer_guides/execution_pipeline [R=301,L]
RewriteRule ^(.*)/reference/flushable$ /$1/developer_guides/execution_pipeline/flushable [R=301,L]
RewriteRule ^(.*)/reference/form-field-types$ /$1/developer_guides/forms/fields/common_subclasses [R=301,L]
RewriteRule ^(.*)/reference/forms$ /$1/developer_guides/forms [R=301,L]
RewriteRule ^(.*)/reference/image$ /$1/developer_guides/files/image [R=301,L]
RewriteRule ^(.*)/reference/injector$ /$1/developer_guides/extending/injector [R=301,L]
RewriteRule ^(.*)/reference/layout$ /$1/developer_guides/customising_the_admin_interface/cms_layout [R=301,L]
RewriteRule ^(.*)/reference/member$ /$1/developer_guides/security/member [R=301,L]
RewriteRule ^(.*)/reference/modeladmin$ /$1/developer_guides/customising_the_admin_interface/modeladmin [R=301,L]
RewriteRule ^(.*)/reference/partial-caching$ /$1/developer_guides/performance/partial_caching [R=301,L]
RewriteRule ^(.*)/reference/permission$ /$1/developer_guides/security/permissions [R=301,L]
RewriteRule ^(.*)/reference/preview$ /$1/developer_guides/customising_the_admin_interface/preview [R=301,L]
RewriteRule ^(.*)/reference/requirements$ /$1/developer_guides/templates/requirements [R=301,L]
RewriteRule ^(.*)/reference/restfulservice$ /$1/developer_guides/integration/restfulservice [R=301,L]
RewriteRule ^(.*)/reference/rssfeed$ /$1/developer_guides/integration/rssfeed [R=301,L]
RewriteRule ^(.*)/reference/searchcontext$ /$1/developer_guides/search/searchcontext [R=301,L]
RewriteRule ^(.*)/reference/shortcodes$ /$1/developer_guides/extending/shortcodes [R=301,L]
RewriteRule ^(.*)/reference/shortcodes$ /$1/developer_guides/extending/shortcodes [R=301,L]
RewriteRule ^(.*)/reference/siteconfig$ /$1/developer_guides/configuration/siteconfig [R=301,L]
RewriteRule ^(.*)/reference/sitetree$ /$1/developer_guides/model/data_model_and_orm [R=301,L]
RewriteRule ^(.*)/reference/sqlquery$ /$1/developer_guides/model/sqlquery [R=301,L]
RewriteRule ^(.*)/reference/templates$ /$1/developer_guides/templates [R=301,L]
RewriteRule ^(.*)/reference/templates-format-syntax$ /$1/developer_guides/templates/syntax [R=301,L]
RewriteRule ^(.*)/reference/typography$ /$1/developer_guides/customising_the_admin_interface/typography [R=301,L]
RewriteRule ^(.*)/reference/uploadfield$ /$1/developer_guides/forms/fields [R=301,L]
RewriteRule ^(.*)/reference/urlvariabletools$ /$1/developer_guides/debugging/url_variable_tools [R=301,L]
RewriteRule ^(.*)/topics$ /$1/developer_guides [R=301,L]
RewriteRule ^(.*)/topics/access-control$ /$1/developer_guides/security/access_control [R=301,L]
RewriteRule ^(.*)/topics/authentication$ /$1/developer_guides/security/authentication [R=301,L]
RewriteRule ^(.*)/topics/caching$ /$1/developer_guides/performance/caching [R=301,L]
RewriteRule ^(.*)/topics/directory-structure$ /$1/getting_started/directory_structure [R=301,L]
RewriteRule ^(.*)/topics/environment-management$ /$1/getting_started/environment_management [R=301,L]
RewriteRule ^(.*)/topics/files$ /$1/developer_guides/files [R=301,L]
RewriteRule ^(.*)/topics/i18n$ /$1/developer_guides/i18n [R=301,L]
RewriteRule ^(.*)/topics/javascript$ /$1/developer_guides/customising_the_admin_interface/javascript_development [R=301,L]
RewriteRule ^(.*)/topics/module-development$ /$1/developer_guides/extending/how_tos/publish_a_module [R=301,L]
RewriteRule ^(.*)/topics/modules$ /$1/developer_guides/extending/modules [R=301,L]
RewriteRule ^(.*)/topics/page-type-templates$ /$1/developer_guides/templates/template_inheritance [R=301,L]
RewriteRule ^(.*)/topics/page-types$ /$1/developer_guides/model/data_model_and_orm [R=301,L]
RewriteRule ^(.*)/topics/rich-text-editing$ /$1/developer_guides/forms/fields/htmleditorfield [R=301,L]
RewriteRule ^(.*)/topics/search$ /$1/developer_guides/search [R=301,L]
RewriteRule ^(.*)/topics/security$ /$1/developer_guides/security/secure_coding [R=301,L]
RewriteRule ^(.*)/topics/testing$ /$1/developer_guides/testing [R=301,L]
RewriteRule ^(.*)/topics/theme-development$ /$1/developer_guides/templates/themes [R=301,L]
RewriteRule ^(.*)/topics/versioning$ /$1/developer_guides/model/versioning [R=301,L]
RewriteRule ^(.*)/topics/widgets$ https://github.com/silverstripe/silverstripe-widgets [R=301,L]
RewriteRule ^(.*)/tutorials/1-building-a-basic-site$ /$1/tutorials/building_a_basic_site [R=301,L]
RewriteRule ^(.*)/tutorials/2-extending-a-basic-site$ /$1/tutorials/extending_a_basic_site [R=301,L]
RewriteRule ^(.*)/tutorials/3-forms$ /$1/tutorials/forms [R=301,L]
RewriteRule ^(.*)/tutorials/4-site-search$ /$1/tutorials/site_search [R=301,L]
RewriteRule ^(.*)/tutorials/5-dataobject-relationship-management$ /$1/tutorials/dataobject_relationship_management [R=301,L]
# Legacy rewrite: Can't use 'master' as it confuses api.ss.org linking
RewriteRule ^framework/en/master(.*) http://doc.silverstripe.org/framework/en/trunk$1 [R=301,L]
# Anything in sapphire/en/<version>/misc is redirected to trunk, the info in there is usually not version specific,
# Anything in sapphire/en/<version>/contributing is redirected to trunk, the info in there is usually not version specific,
# and only updated on master (e.g. contribution and coding guidelines)
RewriteRule ^framework/en/misc/?(.*) http://doc.silverstripe.org/framework/en/trunk/misc/$1 [R=301,L]
RewriteRule ^framework/en/[\d.]*/misc/?(.*) http://doc.silverstripe.org/framework/en/trunk/misc/$1 [R=301,L]
#RewriteRule ^framework/en/contributing/?(.*) http://doc.silverstripe.org/framework/en/trunk/contributing/$1 [R=301,L]
#RewriteRule ^framework/en/[\d.]*/contributing/?(.*) http://doc.silverstripe.org/framework/en/trunk/contributing/$1 [R=301,L]
RewriteCond %{REQUEST_URI} ^(.*)$

View File

@ -10,7 +10,17 @@ DocumentationManifest:
automatic_registration: false
register_entities:
-
Path: "framework/docs/"
Path: "src/framework_master/docs/"
Title: "Framework"
Version: "4.0"
DefaultEntity: true
-
Path: "src/framework_3/docs/"
Title: "Framework"
Version: "3.2"
DefaultEntity: true
-
Path: "src/framework_3.1/docs/"
Title: "Framework"
Version: "3.1"
Stable: true

View File

@ -1,29 +1,26 @@
<?php
class ControllerExtension extends Extension {
/**
* @var string
*/
public static $google_analytics_code = null;
/**
*
/**
*
*/
public function onAfterInit(){
Requirements::javascript('themes/docs/javascript/jquery.cookie.js');
Requirements::javascript('themes/docs/javascript/main.js');
Requirements::css('themes/docs//css/styles.css');
}
/**
* @return string
* @return string
*/
public function getGoogleAnalyticsCode() {
return self::$google_analytics_code;
}
/**
* @return bool
*/
@ -31,4 +28,4 @@ class ControllerExtension extends Extension {
return (Director::isDev());
}
}
}

View File

@ -48,6 +48,9 @@ function checkout {
}
# core
checkout 'silverstripe/silverstripe-framework.git' 'framework' 'master'
checkout 'silverstripe/silverstripe-framework.git' 'framework' '3'
checkout 'silverstripe/silverstripe-framework.git' 'framework' '3.1'
checkout 'silverstripe/silverstripe-framework.git' 'framework' '3.0'
checkout 'silverstripe/silverstripe-framework.git' 'framework' '2.4'

View File

@ -1,32 +1,30 @@
{
"name": "silverstripe/doc.silverstripe.org",
"description": "The source code behind doc.silverstripe.org",
"require": {
"ext-gd": "*",
"ext-mbstring": "*",
"silverstripe/docsviewer": "dev-fixsearch",
"silverstripe/framework": "dev-docsrewrite as 3.1.x-dev",
"erusev/parsedown-extra": "0.2.2",
"silverstripe/toolbar": "*"
},
"require-dev": {
"phpunit/PHPUnit": "~3.7@stable"
},
"repositories": [{
"type": "vcs",
"url": "git@github.com:wilr/sapphire.git"
}, {
"type": "vcs",
"url": "git@github.com:silverstripe/silverstripe-globaltoolbar.git"
}, {
"type": "vcs",
"url": "git@github.com:camfindlay/silverstripe-docsviewer.git"
}],
"config": {
"process-timeout": 600
"name": "silverstripe/doc.silverstripe.org",
"description": "The source code behind doc.silverstripe.org",
"require": {
"ext-gd": "*",
"ext-mbstring": "*",
"silverstripe/docsviewer": "dev-master",
"silverstripe/framework": "3.1.*@stable",
"erusev/parsedown-extra": "0.2.2",
"silverstripe/toolbar": "*"
},
"minimum-stability": "dev",
"scripts": {
"require-dev": {
"phpunit/PHPUnit": "~3.7@stable"
},
"repositories": [{
"type": "vcs",
"url": "git@github.com:silverstripe/silverstripe-globaltoolbar.git"
},
{
"type": "vcs",
"url": "git@github.com:camfindlay/silverstripe-docsviewer.git"
}],
"config": {
"process-timeout": 600
},
"minimum-stability": "dev",
"scripts": {
}
}
}
}

60
composer.lock generated
View File

@ -4,7 +4,7 @@
"Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
"hash": "0e30e64d8ef26da948e675b150189051",
"hash": "9f15589068a7501b66771a7f7eed8719",
"packages": [
{
"name": "composer/installers",
@ -184,16 +184,16 @@
},
{
"name": "silverstripe/docsviewer",
"version": "dev-fixsearch",
"version": "dev-master",
"source": {
"type": "git",
"url": "https://github.com/camfindlay/silverstripe-docsviewer.git",
"reference": "5b02bcc6f80ac22e1b8c5ffb36d6f608bfde4dd8"
"reference": "410312c6414eef69f32fdabafdfc3ebbd3e3e032"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/camfindlay/silverstripe-docsviewer/zipball/5b02bcc6f80ac22e1b8c5ffb36d6f608bfde4dd8",
"reference": "5b02bcc6f80ac22e1b8c5ffb36d6f608bfde4dd8",
"url": "https://api.github.com/repos/camfindlay/silverstripe-docsviewer/zipball/410312c6414eef69f32fdabafdfc3ebbd3e3e032",
"reference": "410312c6414eef69f32fdabafdfc3ebbd3e3e032",
"shasum": ""
},
"require": {
@ -224,22 +224,22 @@
"email": "will@fullscreen.io",
"irc": "irc://irc.freenode.org/silverstripe"
},
"source": "https://github.com/camfindlay/silverstripe-docsviewer/tree/fixsearch"
"source": "https://github.com/camfindlay/silverstripe-docsviewer/tree/curentversionsearch"
},
"time": "2014-12-10 00:12:28"
"time": "2014-12-16 22:18:00"
},
{
"name": "silverstripe/framework",
"version": "dev-docsrewrite",
"version": "3.1.8",
"source": {
"type": "git",
"url": "https://github.com/wilr/sapphire.git",
"reference": "43cd657695d86b81374acf32b3dc70d431b010b4"
"url": "https://github.com/silverstripe/silverstripe-framework.git",
"reference": "8b3695bd41e5fcd0fb2fe97811fcba4ed03ce214"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/wilr/sapphire/zipball/43cd657695d86b81374acf32b3dc70d431b010b4",
"reference": "43cd657695d86b81374acf32b3dc70d431b010b4",
"url": "https://api.github.com/repos/silverstripe/silverstripe-framework/zipball/8b3695bd41e5fcd0fb2fe97811fcba4ed03ce214",
"reference": "8b3695bd41e5fcd0fb2fe97811fcba4ed03ce214",
"shasum": ""
},
"require": {
@ -255,6 +255,7 @@
"tests/behat/features/bootstrap"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@ -274,10 +275,7 @@
"framework",
"silverstripe"
],
"support": {
"source": "https://github.com/wilr/sapphire/tree/docsrewrite"
},
"time": "2014-12-08 20:44:24"
"time": "2014-11-18 05:30:19"
},
{
"name": "silverstripe/toolbar",
@ -285,12 +283,12 @@
"source": {
"type": "git",
"url": "https://github.com/silverstripe/silverstripe-globaltoolbar.git",
"reference": "39189e894c88f987a72cacf53d7886741586e038"
"reference": "c512db4919b91acfd146243cc9fab757391bf460"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/silverstripe/silverstripe-globaltoolbar/zipball/39189e894c88f987a72cacf53d7886741586e038",
"reference": "39189e894c88f987a72cacf53d7886741586e038",
"url": "https://api.github.com/repos/silverstripe/silverstripe-globaltoolbar/zipball/c512db4919b91acfd146243cc9fab757391bf460",
"reference": "c512db4919b91acfd146243cc9fab757391bf460",
"shasum": ""
},
"require": {
@ -318,10 +316,10 @@
"silverstripe"
],
"support": {
"source": "https://github.com/silverstripe/silverstripe-globaltoolbar/tree/hotfix/js-issues",
"source": "https://github.com/silverstripe/silverstripe-globaltoolbar/tree/master",
"issues": "https://github.com/silverstripe/silverstripe-globaltoolbar/issues"
},
"time": "2014-12-02 02:01:41"
"time": "2014-12-16 02:50:17"
},
{
"name": "unclecheese/display-logic",
@ -750,12 +748,12 @@
"source": {
"type": "git",
"url": "https://github.com/symfony/Yaml.git",
"reference": "a0913638efd5237ff700e92b8444b6a71278f1f6"
"reference": "b9c19ce1bd9a51d3f42665973088f2e2b82db240"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/Yaml/zipball/a0913638efd5237ff700e92b8444b6a71278f1f6",
"reference": "a0913638efd5237ff700e92b8444b6a71278f1f6",
"url": "https://api.github.com/repos/symfony/Yaml/zipball/b9c19ce1bd9a51d3f42665973088f2e2b82db240",
"reference": "b9c19ce1bd9a51d3f42665973088f2e2b82db240",
"shasum": ""
},
"require": {
@ -788,24 +786,18 @@
],
"description": "Symfony Yaml Component",
"homepage": "http://symfony.com",
"time": "2014-12-08 08:43:57"
}
],
"aliases": [
{
"alias": "3.1.x-dev",
"alias_normalized": "3.1.9999999.9999999-dev",
"version": "dev-docsrewrite",
"package": "silverstripe/framework"
"time": "2014-12-09 17:32:32"
}
],
"aliases": [],
"minimum-stability": "dev",
"stability-flags": {
"silverstripe/docsviewer": 20,
"silverstripe/framework": 20,
"silverstripe/framework": 0,
"phpunit/phpunit": 0
},
"prefer-stable": false,
"prefer-lowest": false,
"platform": {
"ext-gd": "*",
"ext-mbstring": "*"

View File

@ -1,2 +1,2 @@
User-agent: *
Disallow: /
Disallow: /src/

View File

@ -1,3 +0,0 @@
.hide {
display: none;
}

View File

@ -1,117 +0,0 @@
/*!
* jQuery Cookie Plugin v1.4.1
* https://github.com/carhartl/jquery-cookie
*
* Copyright 2013 Klaus Hartl
* Released under the MIT license
*/
(function (factory) {
if (typeof define === 'function' && define.amd) {
// AMD
define(['jquery'], factory);
} else if (typeof exports === 'object') {
// CommonJS
factory(require('jquery'));
} else {
// Browser globals
factory(jQuery);
}
}(function ($) {
var pluses = /\+/g;
function encode(s) {
return config.raw ? s : encodeURIComponent(s);
}
function decode(s) {
return config.raw ? s : decodeURIComponent(s);
}
function stringifyCookieValue(value) {
return encode(config.json ? JSON.stringify(value) : String(value));
}
function parseCookieValue(s) {
if (s.indexOf('"') === 0) {
// This is a quoted cookie as according to RFC2068, unescape...
s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\');
}
try {
// Replace server-side written pluses with spaces.
// If we can't decode the cookie, ignore it, it's unusable.
// If we can't parse the cookie, ignore it, it's unusable.
s = decodeURIComponent(s.replace(pluses, ' '));
return config.json ? JSON.parse(s) : s;
} catch(e) {}
}
function read(s, converter) {
var value = config.raw ? s : parseCookieValue(s);
return $.isFunction(converter) ? converter(value) : value;
}
var config = $.cookie = function (key, value, options) {
// Write
if (value !== undefined && !$.isFunction(value)) {
options = $.extend({}, config.defaults, options);
if (typeof options.expires === 'number') {
var days = options.expires, t = options.expires = new Date();
t.setTime(+t + days * 864e+5);
}
return (document.cookie = [
encode(key), '=', stringifyCookieValue(value),
options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
options.path ? '; path=' + options.path : '',
options.domain ? '; domain=' + options.domain : '',
options.secure ? '; secure' : ''
].join(''));
}
// Read
var result = key ? undefined : {};
// To prevent the for loop in the first place assign an empty array
// in case there are no cookies at all. Also prevents odd result when
// calling $.cookie().
var cookies = document.cookie ? document.cookie.split('; ') : [];
for (var i = 0, l = cookies.length; i < l; i++) {
var parts = cookies[i].split('=');
var name = decode(parts.shift());
var cookie = parts.join('=');
if (key && key === name) {
// If second argument (value) is a function it's a converter...
result = read(cookie, value);
break;
}
// Prevent storing a cookie that we couldn't decode.
if (!key && (cookie = read(cookie)) !== undefined) {
result[name] = cookie;
}
}
return result;
};
config.defaults = {};
$.removeCookie = function (key, options) {
if ($.cookie(key) === undefined) {
return false;
}
// Must not alter options, thus extending a fresh object...
$.cookie(key, '', $.extend({}, options, { expires: -1 }));
return !$.cookie(key);
};
}));

View File

@ -1,18 +1,3 @@
$(function() {
// Check if cookie
if ($.cookie("beta") == "closed") {
$('#Beta').addClass('hide');
}
// On button click close and add cookie (expires in 100 days)
$('.close').on('click', function(){
$('#Beta').addClass('hide');
$.cookie("beta", "closed", { expires : 1 });
});
});
// Feedback button
/*{literal}<![CDATA[*/window.lightningjs||function(c){function g(b,d){d&&(d+=(/\?/.test(d)?"&":"?")+"lv=1");c[b]||function(){var i=window,h=document,j=b,g=h.location.protocol,l="load",k=0;(function(){function b(){a.P(l);a.w=1;c[j]("_load")}c[j]=function(){function m(){m.id=e;return c[j].apply(m,arguments)}var b,e=++k;b=this&&this!=i?this.id||0:0;(a.s=a.s||[]).push([e,b,arguments]);m.then=function(b,c,h){var d=a.fh[e]=a.fh[e]||[],j=a.eh[e]=a.eh[e]||[],f=a.ph[e]=a.ph[e]||[];b&&d.push(b);c&&j.push(c);h&&f.push(h);return m};return m};var a=c[j]._={};a.fh={};a.eh={};a.ph={};a.l=d?d.replace(/^\/\//,(g=="https:"?g:"http:")+"//"):d;a.p={0:+new Date};a.P=function(b){a.p[b]=new Date-a.p[0]};a.w&&b();i.addEventListener?i.addEventListener(l,b,!1):i.attachEvent("on"+l,b);var q=function(){function b(){return["<head></head><",c,' onload="var d=',n,";d.getElementsByTagName('head')[0].",d,"(d.",g,"('script')).",i,"='",a.l,"'\"></",c,">"].join("")}var c="body",e=h[c];if(!e)return setTimeout(q,100);a.P(1);var d="appendChild",g="createElement",i="src",k=h[g]("div"),l=k[d](h[g]("div")),f=h[g]("iframe"),n="document",p;k.style.display="none";e.insertBefore(k,e.firstChild).id=o+"-"+j;f.frameBorder="0";f.id=o+"-frame-"+j;/MSIE[ ]+6/.test(navigator.userAgent)&&(f[i]="javascript:false");f.allowTransparency="true";l[d](f);try{f.contentWindow[n].open()}catch(s){a.domain=h.domain,p="javascript:var d="+n+".open();d.domain='"+h.domain+"';",f[i]=p+"void(0);"}try{var r=f.contentWindow[n];r.write(b());r.close()}catch(t){f[i]=p+'d.write("'+b().replace(/"/g,String.fromCharCode(92)+'"')+'");d.close();'}a.P(2)};a.l&&setTimeout(q,0)})()}();c[b].lv="1";return c[b]}var o="lightningjs",k=window[o]=g(o);k.require=g;k.modules=c}({});window.usabilla_live = lightningjs.require("usabilla_live", "//w.usabilla.com/ba04460c520e.js");/*]]>{/literal}*/

View File

@ -1,57 +0,0 @@
<!DOCTYPE html>
<html>
<% include DocumentationHead %>
<div id="masthead" <% if Versions %>class="has_versions"<% end_if %>>
<div class="wrapper">
<% if Breadcrumbs.count > 1 %>
<% include DocumentationBreadcrumbs %>
<% else_if Page.Title %>
<h1>$Page.Title</h1>
<% end_if %>
<% if Page.Introduction %>
<div class="introduction">
<p>$Page.Introduction</p>
</div>
<% end_if %>
<% include DocumentationVersions %>
</div>
</div>
<div class="wrapper">
<div id="layout" class="clearfix">
<div id="Beta" class="info">
<p>You are currently viewing the new beta version of the SilverStripe documentation.
<a href="http://doc.silverstripe.com/?utm_source=beta&utm_medium=banner&utm_campaign=docs-beta">
Access the original version of docs.</a></p>
<a href="#" class="close" title="Close notification">close</a>
</div>
<% include DocumentationSidebar %>
<div id="content">
$Layout
<% include DocumentationFooter %>
</div>
</div>
</div>
<% if GoogleAnalyticsCode %>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', '$GoogleAnalyticsCode', 'auto');
ga('send', 'pageview');
</script>
<% end_if %>
<% include DocumentationEnd %>
</html>