我希望每个请求都被转发到 index.php,但尊重请求是在哪个子文件夹中进行的。我可以让它们全部转到根 index.php,但不是特定子文件夹中的 index.php。
示例:
site.com/testurl > site.com/index.php
site.com/admin/testurl > site.com/admin/index.php
site.com/randomname/randomname > site.com/randomname/index.php
我不想对任何子文件夹进行硬编码以使其保持动态。
目前,我将其作为我的 .htaccess 文件:
DirectoryIndex index.php
# enable apache rewrite engine
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1%{REQUEST_URI} [R=301,QSA,NC,L]
# Deliver the folder or file directly if it exists on the server
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Push every request to index.php
RewriteRule ^(.*)$ index.php [QSA]
额外功劳(不确定 .htaccess 是否可行):让它知道 index.php 是否在子目录中,如果不在则回退到根目录 index.php
智慧大石