RewriteEngine On

# 如果直接访问proxy.php，重定向到根目录
RewriteCond %{THE_REQUEST} \s/+proxy\.php[\s?] [NC]
RewriteRule ^ /? [R=301,L]

# 隐藏.php扩展名 - 如果直接访问.php文件，重定向到无扩展名版本
RewriteCond %{THE_REQUEST} /([^.]+)\.php[\s?] [NC]
RewriteCond %1 !^proxy$ [NC]
RewriteRule ^ /%1? [R=301,L]

# 隐藏.html扩展名 - 如果直接访问.html文件，重定向到无扩展名版本
RewriteCond %{THE_REQUEST} /([^.]+)\.html[\s?] [NC]
RewriteRule ^ /%1? [R=301,L]

# 处理favicon请求 - 重定向到src目录
RewriteRule ^favicon\.ico$ src/favicon.svg [L,R=301]

# 处理API请求 - 重写到proxy.php
RewriteRule ^api/(.*)$ proxy.php/api/$1 [L,QSA]

# 处理其他静态资源请求 - 重写到proxy.php
RewriteRule ^(uploads|theme|assets)/(.*)$ proxy.php/$1/$2 [L,QSA]

# 处理无扩展名的请求 - 首先检查是否存在对应的.php文件
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [L]

# 处理无扩展名的请求 - 然后检查是否存在对应的.html文件
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.*)$ $1.html [L]

# 处理根目录访问 - 通过鉴权检查
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^$ auth_check.php [L]

# 处理其他所有请求 - 如果文件不存在，通过proxy.php处理
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ proxy.php/$1 [L,QSA]