RewriteEngine On

# Add CORS headers to all responses
<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
    Header set Access-Control-Allow-Methods "GET, POST, OPTIONS"
    Header set Access-Control-Allow-Headers "Content-Type, Authorization"
</IfModule>


#user/status/ -to just- /status
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?alceawis\.com/ [NC]
RewriteRule ^alceawis/([0-9]{8}-[a-f0-9]+)$ /alceawis/status/$1 [R=301,L]

# Match /alceawis/status/* URLs
RewriteCond %{REQUEST_URI} ^/alceawis/status/.+$
RewriteCond %{HTTP_REFERER} ^https?://(www\.)?alceawis\.com [NC]
RewriteRule ^alceawis/status/(.+)$ /_https://alceawis.com/alceawis/status/$1 [R=301,L]

# Redirect /users/username to /username dynamically
RewriteRule ^users/([^/]+)/?$ /$1 [R=301,L]

#v1 statuses endpoint
#RewriteRule ^api/v1/statuses(.*)$ /alceawis/status$1 [R=301,L]

RewriteRule ^users/([^/]+)/?$ /$1 [R=301,L]

#user/$user/inbox to /$user/inbox
#RewriteRule ^users/alceawis/inbox$ /alceawis/inbox [R=301,L]
#RewriteRule ^users/alceawis/outbox$ /alceawis/outbox [R=301,L]

# Redirect /@username to /username (optional, but common)
RewriteRule ^@([^/]+)$ /$1 [R=302,L]

# Match any request URI that contains "custom_emojis"
RewriteCond %{REQUEST_URI} custom_emojis
RewriteRule ^.*$ custom_emojis.php [L,QSA]

# Redirect /api/v1/instance/peers to peers.php
RewriteRule ^api/v1/instance/peers$ peers.php [L,QSA]

# Redirect /api/v1/instance requests to instance.php
RewriteCond %{REQUEST_URI} ^/api/v1/instance$
RewriteRule ^api/v1/instance$ /instance.php [L,QSA]

# If the request URI contains "nodeinfo" (including under .well-known), rewrite to /nodeinfo.php
RewriteCond %{REQUEST_URI} nodeinfo
RewriteRule ^.*$ nodeinfo.php [L,QSA]


# Route all requests except existing files or directories to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ index.php [QSA,L]
