Project

General

Profile

Statistics
| Revision:

# Date Author Comment
8549 04/17/2013 01:36 AM Aaron Marcuse-Kubitza

schemas/VegCore/VegCore.ERD.mwb: fixed lines

8548 04/17/2013 01:35 AM Aaron Marcuse-Kubitza

schemas/VegCore/VegCore.ERD.mwb: taxon_assertion: removed fkey to taxon_concept because only parsed_taxon_assertions have a corresponding taxon_concept

8547 04/17/2013 01:31 AM Aaron Marcuse-Kubitza

schemas/VegCore/VegCore.ERD.mwb: fixed table positions

8546 04/17/2013 01:25 AM Aaron Marcuse-Kubitza

schemas/VegCore/VegCore.ERD.mwb: lined up tables

8545 04/17/2013 01:24 AM Aaron Marcuse-Kubitza

schemas/VegCore/VegCore.ERD.mwb: fixed lines

8544 04/17/2013 01:21 AM Aaron Marcuse-Kubitza

schemas/VegCore/VegCore.ERD.mwb: parsed_taxon_assertion.matched_taxon: changed it to be an fkey to taxon_path, because the parsing must also populate the denormalized path fields in addition to defining a taxon_concept with the concatenated scientific name

8543 04/17/2013 01:18 AM Aaron Marcuse-Kubitza

schemas/VegCore/VegCore.ERD.mwb: fixed inheritance lines

8542 04/17/2013 01:17 AM Aaron Marcuse-Kubitza

schemas/VegCore/VegCore.ERD.mwb: added taxon_path

8541 04/17/2013 01:10 AM Aaron Marcuse-Kubitza

schemas/VegCore/VegCore.ERD.mwb: geological_context: made it the same color as community because it is a type of community for the geological aspects of the location

8540 04/17/2013 01:01 AM Aaron Marcuse-Kubitza

schemas/VegCore/VegCore.ERD.mwb: renamed fkeys to match renamed tables

8539 04/17/2013 12:34 AM Aaron Marcuse-Kubitza

schemas/VegCore/VegCore.ERD.mwb: merged synonym_taxon, accepted_taxon into taxon_concept because any taxon_concept can have an accepted taxon which indicates the canonical name for that taxon, not just TNRS match results

8538 04/17/2013 12:15 AM Aaron Marcuse-Kubitza

schemas/VegCore/VegCore.ERD.mwb: merged taxon_concept and taxon, because every taxon is according to someone (whether that's Weakley, Tropicos, or the person identifying a taxon_occurrence). note that the according_to is usually different from the source (which is the datasource that owns the record), but if there is no specific according_to, the according_to is the datasource itself.

8537 04/16/2013 11:00 PM Aaron Marcuse-Kubitza

schemas/VegCore/VegCore.ERD.mwb: lightened table colors so dark text is easier to see against them. used colors from VegBank ERD (http://vegpath.org/fs/schemas/VegBank/vegbank.ERD.pdf) where possible, to have a familiar look-and-feel for those who have seen the VegBank ERD.

8536 04/16/2013 10:38 PM Aaron Marcuse-Kubitza

schemas/VegCore/VegCore.ERD.mwb: categories: added stratum

8535 04/16/2013 10:29 PM Aaron Marcuse-Kubitza

schemas/VegCore/VegCore.ERD.mwb: categories: put categories on the same halves of the legend as they are in the ERD

8534 04/16/2013 10:23 PM Aaron Marcuse-Kubitza

schemas/VegCore/VegCore.ERD.mwb: fixed lines

8533 04/16/2013 10:23 PM Aaron Marcuse-Kubitza

schemas/VegCore/VegCore.ERD.mwb: added stratum, plot_stratum

8532 04/16/2013 06:14 PM Aaron Marcuse-Kubitza

schemas/VegCore/VegCore.ERD.mwb: added plot subclass of location

8531 04/16/2013 05:49 PM Aaron Marcuse-Kubitza

schemas/VegCore/VegCore.ERD.mwb: fixed inheritance lines

8530 04/16/2013 05:45 PM Aaron Marcuse-Kubitza

schemas/VegCore/VegCore.ERD.mwb: fixed lines

8529 04/16/2013 05:34 PM Aaron Marcuse-Kubitza

schemas/VegCore/VegCore.ERD.mwb: fixed lines

8528 04/16/2013 05:31 PM Aaron Marcuse-Kubitza

schemas/VegCore/VegCore.ERD.mwb: fixed lines

8527 04/16/2013 05:28 PM Aaron Marcuse-Kubitza

schemas/VegCore/VegCore.ERD.mwb: removed redundant "DEFAULT NULL" clauses on nullable fields

8526 04/16/2013 05:24 PM Aaron Marcuse-Kubitza

schemas/VegCore/VegCore.ERD.mwb: renamed taxon_occurrence.*_taxon_determination to taxon_occurrence.*_determination because the column name does not need to be globally unique, and can therefore be shorter while still being unambiguous within the table

8525 04/16/2013 04:34 PM Aaron Marcuse-Kubitza

schemas/VegCore/VegCore.ERD.mwb: fixed lines

8524 04/16/2013 04:33 PM Aaron Marcuse-Kubitza

schemas/VegCore/VegCore.ERD.mwb: changed all fkeys to CASCADE to support cascading deletes. this allows datasources to be reloaded, because the corresponding source row can be deleted, and the delete will cascade to every record that's part of that datasource.

8523 04/16/2013 04:25 PM Aaron Marcuse-Kubitza

schemas/VegCore/VegCore.ERD.mwb: changed globally unique column names to locally unique column names, now that the SQL dotpath algorithm (http://vegpath.org/wiki/SQL_dotpaths#Algorithm) can be used to generate globally unique column names automatically according to the fkeys. in particular, this means that the pkeys have all been renamed to "id".

8522 04/16/2013 02:30 PM Aaron Marcuse-Kubitza

schemas/VegCore/VegCore.my.sql: removed default_schema qualifier from names because all objects are in the same schema

8521 04/16/2013 02:29 PM Aaron Marcuse-Kubitza

schemas/VegCore/VegCore.my.sql: regenerated from ERD

8520 04/16/2013 09:25 AM Aaron Marcuse-Kubitza

bugfix: schemas/VegCore/VegCore.ERD.mwb: fixed pkey names to match table names

8519 04/16/2013 09:18 AM Aaron Marcuse-Kubitza

schemas/VegCore/VegCore.ERD.mwb: renamed matched_taxon table to synonym_taxon because it can be used to store any taxon which has a corresponding accepted_taxon, not just the match results from TNRS

8518 04/16/2013 09:05 AM Aaron Marcuse-Kubitza

schemas/VegCore/VegCore.ERD.mwb: renamed qualified_taxon tables to *taxon_assertion because they are not just a taxon name plus an optional cf/aff qualifier, but an actual operator/value pair that is the right-hand side of a comparison with a taxon or taxon_occurrence

8517 04/16/2013 08:43 AM Aaron Marcuse-Kubitza

bugfix: schemas/VegCore/VegCore.ERD.mwb: qualified_taxon subclasses: changed HAS-A arrows to point in the other direction, because the many:1 relationship in fact narrows towards the accepted_taxon. the arrows used to be in the opposite direction because of the way the TNRS results are attached incrementally.

8516 04/16/2013 08:28 AM Aaron Marcuse-Kubitza

README.TXT: Maintenance: to backup the Ubuntu VM: removed invisible U+FEFF Unicode character

8515 04/16/2013 08:26 AM Aaron Marcuse-Kubitza

README.TXT: added steps to backup the Ubuntu VM

8514 04/16/2013 07:48 AM Aaron Marcuse-Kubitza

bugfix: schemas/.htaccess: corrected $innermost_dir

8513 04/16/2013 07:46 AM Aaron Marcuse-Kubitza

added .htaccess files for inputs/, schemas/ because these reside outside the DOCUMENT_ROOT, and therefore need an explicit RewriteBase directive so that RewriteRules in their subdirs can construct self-referential URLs. this ensures that the input URLs to RewriteRules are always URL paths instead of filesystem paths, which tend to mess up the redirects. (mod_rewrite is capable of doing filesystem-only redirects, but the associated RewriteRules require special care to ensure they match and reconstruct the filesystem path properly.) the presence of filesystem paths in RewriteRule inputs had been causing numerous bugs, especially in rules that use %{REQUEST_URI}, and the addition of the RewriteBases will hopefully avoid these types of bugs in the future. note that every path that resides outside the DOCUMENT_ROOT needs an explicit RewriteBase in its top-level .htaccess.

8512 04/16/2013 07:14 AM Aaron Marcuse-Kubitza

schemas/VegCore/VegCore.ERD.mwb: ensured that inheritance relationships are drawn as 1:1

8511 04/16/2013 07:00 AM Aaron Marcuse-Kubitza

web/**/.htaccess: appended query strings for external redirects: just use ? rather than ?& when an external redirect will be perfomed, because no dotpath parsing will be performed on the query string first (which would necessitate the & if the new query string looks like a dotpath)

8510 04/14/2013 09:30 PM Aaron Marcuse-Kubitza

schemas/VegCore/VegCore.ERD.png: Regenerated again because some tables were highlighted when it was exported, causing the highlighting to appear in the PNG

8509 04/14/2013 09:27 PM Aaron Marcuse-Kubitza

schemas/VegCore/VegCore.ERD.mwb: Regenerated exports

8508 04/14/2013 09:26 PM Aaron Marcuse-Kubitza

schemas/VegCore/VegCore.ERD.mwb: shortened embedded ERD URL using new abbreviations

8507 04/14/2013 09:19 PM Aaron Marcuse-Kubitza

web/**/.htaccess: RewriteRules: ensured flags are in alphabetical order

8506 04/14/2013 09:10 PM Aaron Marcuse-Kubitza

removed no longer needed web/dotpath.php. use web/.htaccess's parse-dotpath RewriteRule instead.

8505 04/14/2013 09:07 PM Aaron Marcuse-Kubitza

web/.htaccess: parse dotpath in query string: moved parsing from dotpath.php to RewriteRules. with the eventual addition of config env vars, this makes it possible for subdirs to configure their own dotpath parsing, rather than having all levels of the dotpath translated to a URL path. (for inner levels, it may el.g. be more appropriate to parse the dotpath as query params or pass it along to an external URL.) note that it takes only two lines of mod_rewrite (plus a workaround RewriteRule) to replace over a dozen lines of PHP code.

8504 04/14/2013 08:54 PM Aaron Marcuse-Kubitza

web/.htaccess: renamed REQUEST_URI_no_/ to REQUEST_URI_no_extra_/ to clarify that only an excess / is removed

8503 04/14/2013 08:52 PM Aaron Marcuse-Kubitza

web/.htaccess: moved set REQUEST_URI_no_/ under translate subdomain to path because it needs to be set right before being used to be accurate

8502 04/14/2013 08:44 PM Aaron Marcuse-Kubitza

web/.htaccess: setting REQUEST_URI_no_/: use one RewriteCond instead of two since the regexps can be combined

8501 04/14/2013 02:50 PM Aaron Marcuse-Kubitza

web/.htaccess: parse dotpath in query string: removed dotpath auto-detection code because this is now handled by a separate RewriteRule

8500 04/14/2013 02:49 PM Aaron Marcuse-Kubitza

web/.htaccess: auto-detect dotpath in query string (having a . before any = ) and mark it using a leading . . this is done as a separate step so that the dotpath is already explicitly marked as such when it's parsed.

8499 04/14/2013 02:01 PM Aaron Marcuse-Kubitza

web/dotpath.php: just match the QUERY_STRING directly, excluding &, instead of splitting apart the QUERY_STRING and then matching the dotpath portion. this allows the resulting regexp to be used directly in a .htaccess file.

8498 04/14/2013 01:08 PM Aaron Marcuse-Kubitza

web/.htaccess: prepend dir name if it's part of the filename: support MultiViews filenames without the extension, by using a lookahead request -F instead of a regular -f

8497 04/14/2013 01:02 PM Aaron Marcuse-Kubitza

schemas/VegCore/.htaccess: added RewriteBase to support relative redirects. this enables auto-prepending dir name if it's part of the filename, e.g. VegCore/ERD.pdf -> VegCore/VegCore.ERD.pdf).

8496 04/14/2013 12:59 PM Aaron Marcuse-Kubitza

web/.htaccess: prepend dir name if it's part of the filename (this works only if the dir supports relative redirects and sets %{ENV:innermost_dir})

8495 04/14/2013 11:44 AM Aaron Marcuse-Kubitza

schemas/VegCore/VegCore.ERD.mwb: made matched_taxon and accepted_taxon inherit from taxon instead of qualified_taxon because they don't contain the cf_aff (cf_aff.vegpath.org; aka identificationQualifier) that makes a taxon qualified

8494 04/14/2013 11:16 AM Aaron Marcuse-Kubitza

schemas/VegCore/VegCore.ERD.mwb: removed occurrence table, because it's really a synonym for taxon_occurrence ("specimen, observation, etc." <http://rs.tdwg.org/dwc/terms/#Occurrence&gt;)

8493 04/14/2013 10:48 AM Aaron Marcuse-Kubitza

schemas/VegCore/VegCore.ERD.mwb: added labels for the left and right halves (event and occurrence). rearranged tables to help separate event- and occurrence-related tables.

8492 04/14/2013 10:17 AM Aaron Marcuse-Kubitza

schemas/VegCore/VegCore.ERD.mwb: rearranged to leave more space for location_observation, and to put all event-related fields on the left and occurrence-related fields on the left

8491 04/14/2013 09:32 AM Aaron Marcuse-Kubitza

web/.htaccess: parse dotpath in query string: heuristically detect query strings that don't contain dotpaths (such as mod_autoindex sort conditions), rather than always interpreting the part before the first & as the dotpath. now, the part before the first & will be interpreted as a dotpath if it has a . before any = . (query param names containing . are rare, so this usually works correctly.) note that you can always prepend . to force a dotpath, or & to force a query param.

8490 04/14/2013 09:06 AM Aaron Marcuse-Kubitza

web/dotpath.php: remove any . prefix which forces interpretation as a dotpath

8489 04/14/2013 07:38 AM Aaron Marcuse-Kubitza

schemas/VegCore/VegCore.ERD.mwb: taxon_concept: renamed source to according_to

8488 04/14/2013 07:06 AM Aaron Marcuse-Kubitza

schemas/VegCore/VegCore.ERD.mwb: removed no longer used images from zip archive using `zip -d`. this needs to be done every time an image is deleted from the diagram to remove it from the archive (and reclaim the unused space, since `zip -d` will also shrink the archive). note that you can't just expand and re-zip the files, because there is a header of some sort that indicates to MySQL Workbench that it's a valid .mwb file.

8487 04/14/2013 06:27 AM Aaron Marcuse-Kubitza

bugfix: schemas/VegCore/VegCore.ERD.mwb: also fixed inheritance relationships to the record table to be 1:1 (by search-and-replacing and then updating document.mwb.xml in the .mwb zip archive using `zip -u`). added separate legend for relationships and connector styles, which now uses example tables instead of screenshot images to ensure accurate sizing at all ERD zoom levels.

8486 04/14/2013 05:17 AM Aaron Marcuse-Kubitza

bugfix: schemas/VegCore/VegCore.ERD.mwb: fixed inheritance relationships to be 1:1 with optional participation by the derived table, rather than the incorrect 1:many relationshipwhich MySQL Workbench defaults to. (in OOP, each derived instance has its own instance of the base class, because it is a separate object.)

8485 04/14/2013 05:07 AM Aaron Marcuse-Kubitza

web/**/.htaccess: When there is no external redirect for the directory without the trailing /, instead auto-add the trailing / to ensure mod_autoindex relative links work properly. This must be done manually because the top-level .htaccess will not auto-add the trailing / if the dir has an .htaccess file (to allow the custom external redirects). There are actually only two .htaccess files that this applies to (web/.phpPgAdmin/.htaccess, .phpMyAdmin/.htaccess), indicating that dirs which have any kind of virtual paths (redirects) almost always have a "root" redirect when there is no specific subpath. This root redirect is intended to link to the datasource's own index of its available resources, e.g. the list of tables for a database source.

8484 04/14/2013 04:48 AM Aaron Marcuse-Kubitza

removed web/aggregators/.htaccess because it was only there to auto-add the trailing /, but this is now done by web/.htaccess

8483 04/14/2013 04:29 AM Aaron Marcuse-Kubitza

bugfix: web/.htaccess: auto-add trailing /: %{LA-F:REQUEST_FILENAME} lookaheads don't work, because they do not show the externally redirected URL, so we need to use an alternate mechanism instead, which just assumes that any dir containing an .htaccess file may contain a redirect and ignores just those dirs (subdirs are not ignored and will receive a trailing / as expected). To create the trailing / effect when you have a .htaccess without an external redirect, you need to manually tell it to correct the path for just that dir without the / (i.e. match ^/ , because a trailing / causes mod_rewrite to use an absolute filesystem path instead).

8482 04/14/2013 04:21 AM Aaron Marcuse-Kubitza

web/.htaccess: moved auto-add trailing / to after don't rewrite existing dirs, so that the path will automatically not be rewritten if it contains a trailing / and is a dir

8481 04/14/2013 04:18 AM Aaron Marcuse-Kubitza

web/.htaccess: don't rewrite existing paths: only prevent existing dirs with trailing / from being rewritten, because dirs without trailing / may be redirected

8480 04/14/2013 01:31 AM Aaron Marcuse-Kubitza

removed web/**/.htaccess whose only purpose was to auto-add the trailing / (which is now handled by the top-level .htaccess)

8479 04/14/2013 01:30 AM Aaron Marcuse-Kubitza

web/**/.htaccess: removed no longer needed auto-add of trailing / , which is now implemented for all dirs by the top-level .htaccess

8478 04/14/2013 01:27 AM Aaron Marcuse-Kubitza

web/.htaccess: auto-add trailing / if not external redirect: added test if `%{REQUEST_FILENAME} -d` in addition to checking %{LA-F:REQUEST_FILENAME}, because there are some cases (e.g. subdirs that are symlinked outside the DOCUMENT_ROOT) where LA-F:REQUEST_FILENAME for some reason appends /home to the REQUEST_FILENAME, but the current REQUEST_FILENAME is fortunately already a dir and can be checked directly

8477 04/14/2013 01:07 AM Aaron Marcuse-Kubitza

web/.htaccess: auto-add trailing / if not external redirect: removed no longer applicable comment that dir without trailing / is provided as an absolute filesystem path, because this is only true in inner .htaccess files for their top-level dirs

8476 04/14/2013 01:01 AM Aaron Marcuse-Kubitza

bugfix: web/.htaccess: auto-add trailing / if not external redirect: match any path that does not end in / (and satisfies the -d lookahead), rather than only absolute filesystem paths, which are only applicable in inner .htaccess files (and even then only for the outermost dir they control) but not in the top-level .htaccess file. Note that the inner .htaccess files can still use ^/ to match their own dir, just not their subdirs, without a trailing / .

8475 04/14/2013 12:25 AM Aaron Marcuse-Kubitza

bugfix: web/.htaccess: auto-add trailing / if not external redirect: replace with "%{REQUEST_URI}/" instead of the empty string (which gets auto-translated to have a trailing /), because the empty string only works in the top-level dir of the .htaccess file (it redirects to the RewriteBase, which ends in /). The entire REQUEST_URI is needed to do the auto-add in dirs which do not have their own auto-add trailing / rule. Also, using REQUEST_URI avoids the need to (sometimes) set RewriteBase for use by relative URLs in replacement strings, because this is an absolute URL instead. Setting RewriteBase manually is best avoided, because it hardcodes the URL path to the .htaccess file, which may change.

8474 04/14/2013 12:17 AM Aaron Marcuse-Kubitza

bugfix: web/.htaccess: auto-add trailing / if not external redirect: use "%{LA-F:REQUEST_FILENAME} d" instead of "$0 -F" so that the actual value of REQUEST_FILENAME tested, and $0 can also match strings which are not file paths. This is because only those no-trailing/-paths which did not match the RewriteBase are provided to mod_rewrite as absolute filepaths, but RewriteBase is not an issue in the outermost .htaccess (because the RewriteBase is / , which is always matched). This means the method of testing for ^/ to match a no-trailing-/-path will only work in inner .htaccess files (where it is currently used extensively).

8473 04/13/2013 05:47 PM Aaron Marcuse-Kubitza

web/.htaccess: bugfix: moved auto-add trailing / if not external redirect to before don't rewrite existing paths because the trailing / also needs to be added on paths which are existing paths, but are just missing the trailing /

8472 04/13/2013 06:37 AM Aaron Marcuse-Kubitza

web/.htaccess: auto-add trailing / if not external redirect (limited form of DirectorySlash). this allows URLs without trailing /, for dirs which have a special external redirect to the datasource's homepage when there is no trailing /, but still auto-adds the trailing / for all other dirs.

8471 04/13/2013 06:17 AM Aaron Marcuse-Kubitza

README.TXT: Debugging: mod_rewrite: cached redirects issue: changed to limit the cache clearing to when a DirectorySlash-related redirect is changed, since only those redirects are permanent, not the RewriteRule redirects (unless you explicitly set them as permanent)

8470 04/13/2013 06:03 AM Aaron Marcuse-Kubitza

README.TXT: Debugging: mod_rewrite: added tip that whenever you change a RewriteRule, you must clear your browser's cache to ensure that a cached redirect is not used instead (temporary redirects are not supposed to be cached, but sometimes Firefox caches them anyway)

8469 04/13/2013 04:41 AM Aaron Marcuse-Kubitza

README.TXT: umask: Removed -S because this causes the new umask to be echoed, and is not needed even when setting a symbolic umask

8468 04/13/2013 04:18 AM Aaron Marcuse-Kubitza

README.TXT: Datasource setup:: added step to use umask to prevent files from becoming web-accessible

8467 04/13/2013 04:16 AM Aaron Marcuse-Kubitza

README.TXT: Testing: what to put in your .profile: added `umask -S ug=rwx,o=` to prevent files from becoming web-accessible

8466 04/13/2013 04:05 AM Aaron Marcuse-Kubitza

README.TXT: fixed leading whitespace

8465 04/13/2013 02:46 AM Aaron Marcuse-Kubitza

lib/util.run: run_cmd (): renamed to run_args_cmd to clarify that this runs only the command line args command, not any command. added doc comment to clarify this.

8464 04/13/2013 02:41 AM Aaron Marcuse-Kubitza

lib/util.run: EXIT trap: use on_exit() function which calls run_cmd instead of having run_cmd be the handler, so that users can override this function to perform other commands (or no commands) after the script is read

8463 04/13/2013 02:28 AM Aaron Marcuse-Kubitza

lib/util.run: echo_func (): use the caller's FUNCNAME via the $FUNCNAME[] array instead of requiring them to pass it in the function args as `echo_func "$FUNCNAME" "$@"`

8462 04/13/2013 02:11 AM Aaron Marcuse-Kubitza

README.TXT: Maintenance: added steps to synchronize a Mac's settings with my testing machine's

8461 04/13/2013 02:10 AM Aaron Marcuse-Kubitza

README.TXT: Maintenance: to synchronize vegbiendev, jupiter, and your local machine: moved swap=1 right before src= dest=, which it applies to. aligned whitespace of the various commands.

8460 04/13/2013 01:49 AM Aaron Marcuse-Kubitza

README.TXT: Maintenance: steps to synchronize vegbiendev, jupiter, and your local machine: added steps to install dependencies

8459 04/13/2013 01:44 AM Aaron Marcuse-Kubitza

README.TXT: Maintenance: Added steps to synchronize vegbiendev, jupiter, and your local machine when changes are made on vegbiendev

8458 04/13/2013 01:34 AM Aaron Marcuse-Kubitza

README.TXT: converted spaces to tabs for easier readability in a whitespace-highlighting text editor, and so that pressing backspace deletes an indent rather than just a character (creating a misaligned indent)

8457 04/11/2013 10:29 PM Aaron Marcuse-Kubitza

Moved validation/ under planning/workflow/

8456 04/11/2013 10:28 PM Aaron Marcuse-Kubitza

Moved planning/use_cases/ under planning/goals/

8455 04/11/2013 10:26 PM Aaron Marcuse-Kubitza

Moved planning/milestones/ under planning/timeline/

8454 04/11/2013 10:23 PM Aaron Marcuse-Kubitza

Added inputs/VegBIEN/planning shortcut to fs/planning

8453 04/11/2013 10:16 PM Aaron Marcuse-Kubitza

web/.fs: symlink via datasources/VegBIEN/fs instead

8452 04/11/2013 10:14 PM Aaron Marcuse-Kubitza

Added inputs/VegBIEN/fs symlink to /servers/vegbiendev/fs

8451 04/11/2013 05:56 PM Aaron Marcuse-Kubitza

Added web/.gbif shortcut to datasources/GBIF

8450 04/11/2013 04:52 PM Aaron Marcuse-Kubitza

web/**/.htaccess: Use [qsappend] flag with all RewriteRules to ensure that the original query string is never lost