AddType text/plain .phps AddType application/x-tgz .tgz AddType application/x-chrome-extension .crx AddType application/x-web-app-manifest+json .webapp FileETag None Header unset ETag Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate" Header set Pragma "no-cache" Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT" RewriteEngine on RewriteCond %{HTTP:X-Forwarded-Proto} ^http$ RewriteCond %{HTTP_HOST} ^play\.pokemonshowdown\.com$ [NC] RewriteCond %{QUERY_STRING} !^insecure [NC] RewriteRule ^([A-Za-z0-9-]*)$ https://play.pokemonshowdown.com/$1 [R=307,NE,L] # basic stuff RewriteCond %{HTTP_HOST} ^play\.pokemonshowdown\.com$ [NC] RewriteRule ^appeals?\/?$ http://www.smogon.com/forums/threads/new-how-to-make-a-discipline-appeal.3583479/ [R=302,L] RewriteCond %{HTTP_HOST} ^play\.pokemonshowdown\.com$ [NC] RewriteRule ^rooms?suggestions?\/?$ http://www.smogon.com/forums/threads/room-suggestions-are-no-longer-being-taken.3522130/ [R=302,L] RewriteCond %{HTTP_HOST} ^play\.pokemonshowdown\.com$ [NC] RewriteRule ^suggestions?\/?$ http://www.smogon.com/forums/threads/suggestions.3534365/ [R=302,L] RewriteCond %{HTTP_HOST} ^play\.pokemonshowdown\.com$ [NC] RewriteRule ^adminrequests?\/?$ http://www.smogon.com/forums/threads/names-rooms-and-servers-contacting-senior-staff.3538721/ [R=302,L] RewriteCond %{HTTP_HOST} ^play\.pokemonshowdown\.com$ [NC] RewriteRule ^bugs?(reports?)?\/?$ https://www.smogon.com/forums/threads/3634749/ [R=302,L] RewriteCond %{HTTP_HOST} ^play\.pokemonshowdown\.com$ [NC] RewriteRule ^rules?\/?$ http://pokemonshowdown.com/rules [R=302,L] RewriteCond %{HTTP_HOST} ^play\.pokemonshowdown\.com$ [NC] RewriteRule ^faq\/?$ http://www.smogon.com/forums/posts/6774128/ [R=302,L] RewriteCond %{HTTP_HOST} ^play\.pokemonshowdown\.com$ [NC] RewriteRule ^credits?\/?$ http://pokemonshowdown.com/credits [R=302,L] RewriteCond %{HTTP_HOST} ^play\.pokemonshowdown\.com$ [NC] RewriteRule ^news\/?$ http://pokemonshowdown.com/news [R=302,L] RewriteCond %{HTTP_HOST} ^play\.pokemonshowdown\.com$ [NC] RewriteRule ^privacy\/?$ http://pokemonshowdown.com/privacy [R=302,L] RewriteCond %{HTTP_HOST} ^play\.pokemonshowdown\.com$ [NC] RewriteRule ^contact\/?$ http://pokemonshowdown.com/contact [R=302,L] RewriteCond %{HTTP_HOST} ^play\.pokemonshowdown\.com$ [NC] RewriteRule ^dex\/?$ http://dex.pokemonshowdown.com/ [R=302,L] RewriteCond %{HTTP_HOST} ^play\.pokemonshowdown\.com$ [NC] RewriteRule ^insecure\/?$ http://play.pokemonshowdown.com/?insecure [R=302,L] RewriteCond %{HTTP_HOST} ^www\.play\.pokemonshowdown\.com$ [NC] RewriteRule ^(.*) https://play.pokemonshowdown.com/$1 [R=301,L] RewriteRule ^style/fonts?/.*?\.(eot|svg|ttf|woff|woff2)$ - [E=SAFE_RESOURCE:1] Header set Access-Control-Allow-Origin * env=SAFE_RESOURCE # Redirect old battles to their corresponding replay # RewriteCond %{HTTP_HOST} ^play\.pokemonshowdown\.com$ [NC] # RewriteRule ^battle-([a-z0-9]+-[1-6][0-9]{8})$ https://replay.pokemonshowdown.com/$1 [R=302,L] RewriteCond %{HTTP_HOST} ^play\.pokemonshowdown\.com$ [NC] RewriteRule ^battle-([a-z0-9]+-[0-9]{8})$ https://replay.pokemonshowdown.com/$1 [R=302,L] RewriteCond %{HTTP_HOST} ^play\.pokemonshowdown\.com$ [NC] RewriteRule ^battle-([a-z0-9]+)$ https://replay.pokemonshowdown.com/$1 [R=302,L] # TODO: fix bug where you can't join lobby directly RewriteRule ^lobby/?$ / [R=301,L] # roomid with a slash after it: remove the slash, unless the roomid # is also an actual directory RewriteCond %{DOCUMENT_ROOT}/$1 !-d RewriteRule ^([A-Za-z0-9][A-Za-z0-9-]*)/$ /$1 [R=301,L] # Anything that looks like a roomid: connect to the server RewriteRule ^$ - [E=INDEX_PAGE:1] RewriteRule ^([A-Za-z0-9][A-Za-z0-9-]*)$ ./ [L,E=INDEX_PAGE:1] # RewriteRule ^crossprotocol\.html$ - [E=CROSSPROTOCOL:1] # Header set X-Frame-Options "ALLOW-FROM http://play.pokemonshowdown.com" env=CROSSPROTOCOL # Headers for the index page. Header set Cache-Control "no-cache, no-store, must-revalidate" env=INDEX_PAGE Header set Pragma "no-cache" env=INDEX_PAGE Header set Expires "0" env=INDEX_PAGE # No direct linking to the lobby. RewriteCond %{ENV:SCRIPT_URL} ^/(lobby/?)?$ RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^https?:\/\/([a-z0-9-]+.)?(pokemonshowdown\.com|appjs) RewriteCond %{HTTP_HOST} ^play\.pokemonshowdown\.com$ RewriteCond %{REMOTE_ADDR} !=127.0.0.1 RewriteCond %{REMOTE_ADDR} !=162.243.13.96 RewriteCond %{HTTP:CF-Connecting-IP} !=173.252.196.254 RewriteCond %{HTTP:CF-Connecting-IP} !=198.27.67.31 RewriteCond %{HTTP:CF-Connecting-IP} !=162.243.13.96 RewriteRule ^.* https://pokemonshowdown.com/ [R=303,L] RewriteRule ^replay/battle-([A-Za-z0-9-]+)$ https://replay.pokemonshowdown.com/$1 [R=302,L] RewriteRule ^replay/turn_(.+)\.png$ replay/turn-image.php?data=$1 [L,QSA] RewriteCond %{QUERY_STRING} !output=html RewriteRule ^ladder\.php$ https://pokemonshowdown.com/ladder/ [R=301,L] RewriteRule ^~~([^:/]*)(:[0-9]*)?/action\.php$ action.php?serverid=$1 [L,QSA] RewriteRule ^~~([^:/]*)(/.*)?$ http://$1.psim.us$2 [R=301,L] RewriteRule ^~~([^:/]*):([0-9]*)(/.*)?$ http://$1-$2.psim.us$3 [R=301,L] RewriteRule ^backup/ - [F] RewriteRule ^\.git/ - [F] RewriteRule ^data/Pokemon-Showdown/ - [F] RewriteRule ^lib/ - [F] RewriteRule ^githooks/ - [F] RewriteRule ^\.gitignore$ - [F] RewriteRule ^README\.md$ - [F] RewriteRule ^index\.template\.html$ - [F] RewriteRule ^testclient\.html$ - [F] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(apple-touch-icon-precomposed\.png)$ - [R=404,L]