.htaccess 在从根文件夹和子文件夹工作的重写规则中最小化dir硬编码的方法

.htaccess 在从根文件夹和子文件夹工作的重写规则中最小化dir硬编码的方法,.htaccess,redirect,root,subdirectory,.htaccess,Redirect,Root,Subdirectory,我有一个从Web服务器的根本地运行的项目。这是一个学校项目,所以它将被部署到我学校的服务器上,需要我把它放在一个子文件夹中。这会给static+css重定向带来麻烦,因为它显然不像现在从子文件夹运行时编写的那样工作,我不想将每个重写规则硬编码到子文件夹,因为这很难看,如果需要的话,很难切换到从根目录运行它 项目在.htaccess中具有以下规则 Options +FollowSymlinks RewriteEngine On RewriteCond %{THE_REQUEST} ^GET\ /

我有一个从Web服务器的根本地运行的项目。这是一个学校项目,所以它将被部署到我学校的服务器上,需要我把它放在一个子文件夹中。这会给static+css重定向带来麻烦,因为它显然不像现在从子文件夹运行时编写的那样工作,我不想将每个重写规则硬编码到子文件夹,因为这很难看,如果需要的话,很难切换到从根目录运行它

项目在.htaccess中具有以下规则

Options +FollowSymlinks
RewriteEngine On

RewriteCond %{THE_REQUEST} ^GET\ /static/
RewriteRule ^static/(.*) /$1 [L,R=301]
RewriteCond %{THE_REQUEST} ^GET\ /css/
RewriteRule ^css/(.*)$ static/css/$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
是否有一种方法可以让我从根目录和子文件夹中进行上述重写,而不需要提出任何问题,或者有一种方法可以使差异最小化?(我不需要在每个规则中硬编码子文件夹)

我的看法(假设.haccess也在子文件夹中)


这是完美的工作方式,甚至更好:如果我省略了RewriteBase,那么如果我单独部署到根目录或子文件夹,它都可以工作!非常感谢您的解决方案。
Options +FollowSymlinks
RewriteEngine On

#you might need a rewritebase, but not necessarily 
#testing
#RewriteBase /
#production
#RewriteBase /subfolder

#less strict condition. will only be a problem if there is another folder also named 'static' inside 'static' :-)
RewriteCond %{THE_REQUEST} /static/
RewriteRule ^static/(.*) $1 [L,R=301]

#condition here is not needed
RewriteRule ^css/(.*)$ static/css/$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]