diff --git a/bin/gen-htaccess b/bin/gen-htaccess
new file mode 100755
index 00000000..6ee4b71c
--- /dev/null
+++ b/bin/gen-htaccess
@@ -0,0 +1,353 @@
+#!/bin/bash
+
+DIR="$PWD"
+#
+#while test $# -gt 0; do
+# case "$1" in
+# --uploads)
+# shift
+# uploads=$1
+# if [ ${uploads:0:1} == "-" ]; then
+# uploads=""
+# else
+# shift
+# fi
+# ;;
+# -h|--help)
+# echo -e "htaccess Generator"
+# echo -e "This generates an htaccess file"
+# echo -e "It adds 301 redirects to the new locations of wp-includes and wp-admin"
+# echo -e "It also sets up 301 redirects to or from the www version of the site"
+# echo -e "For use on dev or local sites, you can specify a url to have for the wp-uploads"
+# echo -e " "
+# echo -e "Options"
+# echo -e "-h, --help \t\t\t Show this help"
+# echo -e "--uploads [url] \t\t\t The URL to redirect uploads to"
+# echo -e "--with-www \t\t\t Indicate that the primary site should have www"
+# echo -e "--without-www \t\t\t Indicate that the primary site shouldn't have www"
+# echo -e "--domain [domain]\t\t\t The domain without www or http etc."
+# exit 0
+# ;;
+# -a|--auto)
+# defaults=true
+# shift
+# ;;
+# --with-www)
+# www="with"
+# shift
+# ;;
+# --without-www)
+# www="without"
+# shift
+# ;;
+# --domain)
+# shift
+# domain=$1
+# if [ ${domain:0:1} == "-" ]; then
+# domain=""
+# else
+# shift
+# fi
+# ;;
+# *)
+# echo -e "You entered something that wasn't help or salt"
+# shift
+# ;;
+# esac
+#
+#done
+
+if [ -f "$DIR/.htaccess" ]; then
+ echo -e "The file .htaccess already exists."
+ echo -e "What do you want to do? [ b=Create Backup | o=Overwrite | a=Abort] \c"
+ read choice
+ choice=$(echo -e $choice | tr '[:upper:]' '[:lower:]' | head -c 1)
+ if [[ "$choice" == "b" ]]; then
+ name=".htaccess.backup$(date +'%y:%m:%d:%T')"
+ mv "$DIR/.htaccess" "$DIR/$name"
+ echo -e "Would you like to add this new file to .gitignore? [Y/n] \c"
+ read input
+ input=$(echo -e $input | tr '[:upper:]' '[:lower:]' | head -c 1)
+ if [[ $input != 'n' ]];then
+ echo "$name" >> .gitignore
+ fi
+
+ fi
+ if [[ "$choice" == "a" ]]; then
+ echo -e "Aborted by user"
+ return 1
+ fi
+ rm "$DIR/.htaccess"
+fi
+
+
+echo -e "Will you be running wordpress from a wp subdirectory? [Y/n] \c"
+read input
+input=$(echo -e $input | tr '[:upper:]' '[:lower:]' | head -c 1)
+if [[ $input != 'n' ]]; then
+ subdirectory="true"
+else
+ subdirectory="false"
+fi
+
+# Little hack to make any 404 urls set in .htaccess use the wp 404 page
+echo 'ErrorDocument 404 /404/' > "$DIR/.htaccess"
+
+# If wordpress is installed in a sub-directory, add redirects
+if [[ "subdirectory" == "true" ]]; then
+ echo 'RedirectMatch 301 ^/wp-admin/(.*)$ /wp/wp-admin/$1' >> "$DIR/.htaccess"
+ echo 'RedirectMatch 301 ^/wp-includes/(.*)$ /wp/wp-includes/$1' >> "$DIR/.htaccess"
+fi
+
+#This makes sure all git folders and files are inaccessible
+echo 'RedirectMatch 404 /\.git' >> "$DIR/.htaccess"
+
+#This makes sure aquariusGo is not accessible
+echo 'RedirectMatch 404 ^/aquariusGo' >> "$DIR/.htaccess"
+
+#This makes sure htaccess is not accessible
+echo 'RedirectMatch 404 ^/\.htaccess' >> "$DIR/.htaccess"
+
+echo -e "Would you like to add cache, expire and gzip rules? [Y/n] \c"
+read input
+input=$(echo -e $input | tr '[:upper:]' '[:lower:]' | head -c 1)
+if [[ $input != 'n' ]]; then
+ cacheRules="true"
+else
+ cacheRules="false"
+fi
+if [[ "$cacheRules" == "true" ]]; then
+ echo '# Add Browser Cache expires rules' >> "$DIR/.htaccess"
+ echo '' >> "$DIR/.htaccess"
+ echo ' AddType text/css .css' >> "$DIR/.htaccess"
+ echo ' AddType text/x-component .htc' >> "$DIR/.htaccess"
+ echo ' AddType application/x-javascript .js' >> "$DIR/.htaccess"
+ echo ' AddType application/javascript .js2' >> "$DIR/.htaccess"
+ echo ' AddType text/javascript .js3' >> "$DIR/.htaccess"
+ echo ' AddType text/x-js .js4' >> "$DIR/.htaccess"
+ echo ' AddType text/html .html .htm' >> "$DIR/.htaccess"
+ echo ' AddType text/richtext .rtf .rtx' >> "$DIR/.htaccess"
+ echo ' AddType image/svg+xml .svg .svgz' >> "$DIR/.htaccess"
+ echo ' AddType text/plain .txt' >> "$DIR/.htaccess"
+ echo ' AddType text/xsd .xsd' >> "$DIR/.htaccess"
+ echo ' AddType text/xsl .xsl' >> "$DIR/.htaccess"
+ echo ' AddType text/xml .xml' >> "$DIR/.htaccess"
+ echo ' AddType video/asf .asf .asx .wax .wmv .wmx' >> "$DIR/.htaccess"
+ echo ' AddType video/avi .avi' >> "$DIR/.htaccess"
+ echo ' AddType image/bmp .bmp' >> "$DIR/.htaccess"
+ echo ' AddType application/java .class' >> "$DIR/.htaccess"
+ echo ' AddType video/divx .divx' >> "$DIR/.htaccess"
+ echo ' AddType application/msword .doc .docx' >> "$DIR/.htaccess"
+ echo ' AddType application/vnd.ms-fontobject .eot' >> "$DIR/.htaccess"
+ echo ' AddType application/x-msdownload .exe' >> "$DIR/.htaccess"
+ echo ' AddType image/gif .gif' >> "$DIR/.htaccess"
+ echo ' AddType application/x-gzip .gz .gzip' >> "$DIR/.htaccess"
+ echo ' AddType image/x-icon .ico' >> "$DIR/.htaccess"
+ echo ' AddType image/jpeg .jpg .jpeg .jpe' >> "$DIR/.htaccess"
+ echo ' AddType application/json .json' >> "$DIR/.htaccess"
+ echo ' AddType application/vnd.ms-access .mdb' >> "$DIR/.htaccess"
+ echo ' AddType audio/midi .mid .midi' >> "$DIR/.htaccess"
+ echo ' AddType video/quicktime .mov .qt' >> "$DIR/.htaccess"
+ echo ' AddType audio/mpeg .mp3 .m4a' >> "$DIR/.htaccess"
+ echo ' AddType video/mp4 .mp4 .m4v' >> "$DIR/.htaccess"
+ echo ' AddType video/mpeg .mpeg .mpg .mpe' >> "$DIR/.htaccess"
+ echo ' AddType application/vnd.ms-project .mpp' >> "$DIR/.htaccess"
+ echo ' AddType application/x-font-otf .otf' >> "$DIR/.htaccess"
+ echo ' AddType application/vnd.ms-opentype ._otf' >> "$DIR/.htaccess"
+ echo ' AddType application/vnd.oasis.opendocument.database .odb' >> "$DIR/.htaccess"
+ echo ' AddType application/vnd.oasis.opendocument.chart .odc' >> "$DIR/.htaccess"
+ echo ' AddType application/vnd.oasis.opendocument.formula .odf' >> "$DIR/.htaccess"
+ echo ' AddType application/vnd.oasis.opendocument.graphics .odg' >> "$DIR/.htaccess"
+ echo ' AddType application/vnd.oasis.opendocument.presentation .odp' >> "$DIR/.htaccess"
+ echo ' AddType application/vnd.oasis.opendocument.spreadsheet .ods' >> "$DIR/.htaccess"
+ echo ' AddType application/vnd.oasis.opendocument.text .odt' >> "$DIR/.htaccess"
+ echo ' AddType audio/ogg .ogg' >> "$DIR/.htaccess"
+ echo ' AddType application/pdf .pdf' >> "$DIR/.htaccess"
+ echo ' AddType image/png .png' >> "$DIR/.htaccess"
+ echo ' AddType application/vnd.ms-powerpoint .pot .pps .ppt .pptx' >> "$DIR/.htaccess"
+ echo ' AddType audio/x-realaudio .ra .ram' >> "$DIR/.htaccess"
+ echo ' AddType application/x-shockwave-flash .swf' >> "$DIR/.htaccess"
+ echo ' AddType application/x-tar .tar' >> "$DIR/.htaccess"
+ echo ' AddType image/tiff .tif .tiff' >> "$DIR/.htaccess"
+ echo ' AddType application/x-font-ttf .ttf .ttc' >> "$DIR/.htaccess"
+ echo ' AddType application/vnd.ms-opentype ._ttf' >> "$DIR/.htaccess"
+ echo ' AddType audio/wav .wav' >> "$DIR/.htaccess"
+ echo ' AddType audio/wma .wma' >> "$DIR/.htaccess"
+ echo ' AddType application/vnd.ms-write .wri' >> "$DIR/.htaccess"
+ echo ' AddType application/font-woff .woff' >> "$DIR/.htaccess"
+ echo ' AddType application/font-woff2 .woff2' >> "$DIR/.htaccess"
+ echo ' AddType application/vnd.ms-excel .xla .xls .xlsx .xlt .xlw' >> "$DIR/.htaccess"
+ echo ' AddType application/zip .zip' >> "$DIR/.htaccess"
+ echo '' >> "$DIR/.htaccess"
+ echo '' >> "$DIR/.htaccess"
+ echo ' ExpiresActive On' >> "$DIR/.htaccess"
+ echo ' ExpiresByType text/css A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType text/x-component A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType application/x-javascript A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType application/javascript A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType text/javascript A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType text/x-js A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType text/html A3600' >> "$DIR/.htaccess"
+ echo ' ExpiresByType text/richtext A3600' >> "$DIR/.htaccess"
+ echo ' ExpiresByType image/svg+xml A3600' >> "$DIR/.htaccess"
+ echo ' ExpiresByType text/plain A3600' >> "$DIR/.htaccess"
+ echo ' ExpiresByType text/xsd A3600' >> "$DIR/.htaccess"
+ echo ' ExpiresByType text/xsl A3600' >> "$DIR/.htaccess"
+ echo ' ExpiresByType text/xml A3600' >> "$DIR/.htaccess"
+ echo ' ExpiresByType video/asf A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType video/avi A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType image/bmp A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType application/java A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType video/divx A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType application/msword A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType application/vnd.ms-fontobject A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType application/x-msdownload A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType image/gif A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType application/x-gzip A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType image/x-icon A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType image/jpeg A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType application/json A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType application/vnd.ms-access A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType audio/midi A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType video/quicktime A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType audio/mpeg A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType video/mp4 A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType video/mpeg A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType application/vnd.ms-project A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType application/x-font-otf A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType application/vnd.ms-opentype A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType application/vnd.oasis.opendocument.database A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType application/vnd.oasis.opendocument.chart A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType application/vnd.oasis.opendocument.formula A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType application/vnd.oasis.opendocument.graphics A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType application/vnd.oasis.opendocument.presentation A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType application/vnd.oasis.opendocument.spreadsheet A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType application/vnd.oasis.opendocument.text A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType audio/ogg A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType application/pdf A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType image/png A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType application/vnd.ms-powerpoint A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType audio/x-realaudio A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType image/svg+xml A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType application/x-shockwave-flash A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType application/x-tar A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType image/tiff A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType application/x-font-ttf A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType application/vnd.ms-opentype A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType audio/wav A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType audio/wma A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType application/vnd.ms-write A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType application/font-woff A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType application/font-woff2 A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType application/vnd.ms-excel A31536000' >> "$DIR/.htaccess"
+ echo ' ExpiresByType application/zip A31536000' >> "$DIR/.htaccess"
+ echo '' >> "$DIR/.htaccess"
+
+
+ #Add Gzip Compression
+ echo '' >> "$DIR/.htaccess"
+ echo ' # force deflate for mangled headers' >> "$DIR/.htaccess"
+ echo ' # developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping/' >> "$DIR/.htaccess"
+ echo ' ' >> "$DIR/.htaccess"
+ echo ' ' >> "$DIR/.htaccess"
+ echo ' SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding' >> "$DIR/.htaccess"
+ echo ' RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding' >> "$DIR/.htaccess"
+ echo ' ' >> "$DIR/.htaccess"
+ echo ' ' >> "$DIR/.htaccess"
+ echo '' >> "$DIR/.htaccess"
+ echo ' # HTML, TXT, CSS, JavaScript, JSON, XML, HTC:' >> "$DIR/.htaccess"
+ echo ' ' >> "$DIR/.htaccess"
+ echo ' FilterDeclare COMPRESS' >> "$DIR/.htaccess"
+ echo ' FilterProvider COMPRESS DEFLATE resp=Content-Type $text/html' >> "$DIR/.htaccess"
+ echo ' FilterProvider COMPRESS DEFLATE resp=Content-Type $text/css' >> "$DIR/.htaccess"
+ echo ' FilterProvider COMPRESS DEFLATE resp=Content-Type $text/plain' >> "$DIR/.htaccess"
+ echo ' FilterProvider COMPRESS DEFLATE resp=Content-Type $text/xml' >> "$DIR/.htaccess"
+ echo ' FilterProvider COMPRESS DEFLATE resp=Content-Type $text/x-component' >> "$DIR/.htaccess"
+ echo ' FilterProvider COMPRESS DEFLATE resp=Content-Type $application/javascript' >> "$DIR/.htaccess"
+ echo ' FilterProvider COMPRESS DEFLATE resp=Content-Type $application/json' >> "$DIR/.htaccess"
+ echo ' FilterProvider COMPRESS DEFLATE resp=Content-Type $application/xml' >> "$DIR/.htaccess"
+ echo ' FilterProvider COMPRESS DEFLATE resp=Content-Type $application/xhtml+xml' >> "$DIR/.htaccess"
+ echo ' FilterProvider COMPRESS DEFLATE resp=Content-Type $application/rss+xml' >> "$DIR/.htaccess"
+ echo ' FilterProvider COMPRESS DEFLATE resp=Content-Type $application/atom+xml' >> "$DIR/.htaccess"
+ echo ' FilterProvider COMPRESS DEFLATE resp=Content-Type $application/vnd.ms-fontobject' >> "$DIR/.htaccess"
+ echo ' FilterProvider COMPRESS DEFLATE resp=Content-Type $image/svg+xml' >> "$DIR/.htaccess"
+ echo ' FilterProvider COMPRESS DEFLATE resp=Content-Type $application/x-font-ttf' >> "$DIR/.htaccess"
+ echo ' FilterProvider COMPRESS DEFLATE resp=Content-Type $font/opentype' >> "$DIR/.htaccess"
+ echo ' FilterChain COMPRESS' >> "$DIR/.htaccess"
+ echo ' FilterProtocol COMPRESS DEFLATE change=yes;byteranges=no' >> "$DIR/.htaccess"
+ echo ' ' >> "$DIR/.htaccess"
+ echo '' >> "$DIR/.htaccess"
+ echo ' ' >> "$DIR/.htaccess"
+ echo ' # Legacy versions of Apache' >> "$DIR/.htaccess"
+ echo ' AddOutputFilterByType DEFLATE text/html text/plain text/css application/json' >> "$DIR/.htaccess"
+ echo ' AddOutputFilterByType DEFLATE application/javascript' >> "$DIR/.htaccess"
+ echo ' AddOutputFilterByType DEFLATE text/xml application/xml text/x-component' >> "$DIR/.htaccess"
+ echo ' AddOutputFilterByType DEFLATE application/xhtml+xml application/rss+xml ' >> "$DIR/.htaccess"
+ echo ' AddOutputFilterByType DEFLATE application/atom+xml' >> "$DIR/.htaccess"
+ echo ' AddOutputFilterByType DEFLATE image/svg+xml application/vnd.ms-fontobject ' >> "$DIR/.htaccess"
+ echo ' AddOutputFilterByType DEFLATE application/x-font-ttf font/opentype' >> "$DIR/.htaccess"
+ echo ' ' >> "$DIR/.htaccess"
+ echo '' >> "$DIR/.htaccess"
+fi
+
+
+echo '' >> "$DIR/.htaccess"
+echo 'RewriteEngine On' >> "$DIR/.htaccess"
+echo 'RewriteBase /' >> "$DIR/.htaccess"
+if [ ! "$www" ]; then
+ if [ "$defaults" == "true" ]; then
+ www="without"
+ echo -e "Default is to not use www"
+ echo -e "To change, run with flag --with-www"
+ echo -e "For more options, run with flag --help\n"
+ else
+ echo -e "Would you like the primary version of the site to use wwws? [y/N] \c"
+ read input
+ input=$(echo -e $input | tr '[:upper:]' '[:lower:]' | head -c 1)
+ if [[ $input != 'y' ]]; then
+ www="without"
+ else
+ www="with"
+ fi
+ fi
+fi
+if [ ! "$domain" ]; then
+ echo -e "Please enter the domain without wwws, http or trailing slash \c"
+ read domain
+fi
+if [[ "$www" == "with" ]]; then
+ echo "#Primary Site will have wwws" >> "$DIR/.htaccess"
+ echo "RewriteCond %{HTTP_HOST} ^$domain [NC]" >> "$DIR/.htaccess"
+ echo "RewriteRule ^(.*)$ http://www.$domain/\$1 [L,R=301,NC]" >> "$DIR/.htaccess"
+else
+ echo "#Primary site will not have wwws" >> "$DIR/.htaccess"
+ echo "RewriteCond %{HTTP_HOST} ^www.$domain [NC]" >> "$DIR/.htaccess"
+ echo "RewriteRule ^(.*)$ http://$domain/\$1 [L,R=301]" >> "$DIR/.htaccess"
+fi
+
+if [ ! "$uploads" ]; then
+ if [ "$defaults" == "true" ]; then
+ echo -e "By default, the uploads folder will be used as normal"
+ echo -e "To change, run with flag uploads [url]"
+ echo -e "For more options, run with flag --help\n"
+ else
+ echo "Aquarius Go now has the ability to redirect an uploads folder to a different"
+ echo "This is usefull for dev sites or local copies of sites"
+ echo "In order to use it, enter the url with the http(s):// and a trailing slash"
+ echo "Don't enter anything if you want to use the default location"
+ echo -e "URL: \c"
+ read uploads
+ fi
+fi
+if [ "$uploads" ]; then
+ echo 'RewriteCond %{REQUEST_FILENAME} !-d' >> "$DIR/.htaccess"
+ echo 'RewriteCond %{REQUEST_FILENAME} !-f' >> "$DIR/.htaccess"
+ echo 'RewriteRule wp-content/uploads/(.*) \' >> "$DIR/.htaccess"
+ echo " $uploads\$1 [NC,L]" >> "$DIR/.htaccess"
+fi
+echo 'RewriteRule ^index\.php$ - [L]' >> "$DIR/.htaccess"
+echo 'RewriteCond %{REQUEST_FILENAME} !-f' >> "$DIR/.htaccess"
+echo 'RewriteCond %{REQUEST_FILENAME} !-d' >> "$DIR/.htaccess"
+echo 'RewriteRule . /index.php [L]' >> "$DIR/.htaccess"
+echo '' >> "$DIR/.htaccess"
+