在此先感谢您的帮助!
所以我有以下 .htaccess 代码。它似乎工作。然而,它必须是现存最臃肿的低效工作。必须有更好的方法来实现这一点。
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
DirectoryIndex index.php index.html site-down.php
RewriteCond %{HTTP_HOST} !^example\.com [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
RewriteCond %{REQUEST_URI} !\.(htm|html|php|jpg|jpeg|txt|png|gif|js|css)$
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://example.com/$1/ [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/v1
RewriteRule ^(.*)$ v1/$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME}index\.php -f
RewriteRule ^.*$ %0index.php [L]
RewriteCond %{REQUEST_FILENAME}index\.html -f
RewriteRule ^.*$ %0index.html [L]
RewriteCond %{REQUEST_FILENAME}site-down\.php -f
RewriteRule ^.*$ %0site-down.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}(index\.php|index\.html|site-down\.php) !-f
RewriteRule ^.*$ controller.php [QSA,L]
这就是我想要完成的。
- 将所有请求重写为非 www
- 检查文件是否按要求存在。如果不,
- 检查文件夹 v1/+附加请求中是否存在文件,如果不存在,
- 检查文件夹 v1/+附加请求中是否存在索引文件,如果不存在,
- 重定向到controller.php
由于每个请求都使用 htaccess 文件,因此我真的需要让它更合乎逻辑/更有效。我在中间添加索引文件块的原因是它在检查重定向到 controller.php 时没有检查索引文件是否存在。
有任何想法吗?谢谢!