Apache RewriteEngine,将子目录重定向到另一个脚本

Apache RewriteEngine,将子目录重定向到另一个脚本

我已经尝试实现这个目标大约 1.5 小时了。我希望在我的网站上请求网站时进行以下转换:

homepage.com/                           => index.php
homepage.com/archive                    => index.php?archive
homepage.com/archive/site-01            => index.php?archive/site-01
homepage.com/files/css/main.css         => requestfile.php?css/main.css

前三个转换可以通过以下方法完成:

RewriteEngine   on
RewriteRule     ^/?$                    index.php
RewriteRule     ^/?(.*)$                index.php?$1

files但是,我被困在了所有对子目录的请求都应重定向到的位置requestfile.php。这是我做过的尝试之一:

RewriteEngine   on
RewriteRule     ^/?$                    index.php
RewriteRule     ^/?files/(.+)$          requestfile.php?$1
RewriteRule     ^/?(.*)$                index.php?$1

但那不管用。我也试过放在[L]第三行后面,但那没用,因为我正在使用此配置,.htaccess子请求将再次转换该 URL,等等。我用命令进行了模糊测试RewriteCond,但无法让它工作。

需要什么样的配置才能实现我的愿望?

答案1

RewriteEngine   on
RewriteRule     ^/?$                    index.php
RewriteRule     ^/files/?(.*)$          /requestfile.php?$1

RewriteCond     %{REQUEST_URI}          !^/files/$
RewriteRule     ^/?(.*)$                index.php?$1

相关内容