如何将使用重写规则且位于 Web 服务器根目录中的 Web 应用程序移动到子目录?
我的 apache 网络服务器上运行着一个应用程序,它在 .htaccess 文件中使用以下重写规则:
RewriteCond $1 !^(tool|web|files)
RewriteCond %{REQUEST_URI} !((.*)\.(.*))$
RewriteRule ^(.*)$ dispatcher.php?route=/$1 [NC,L]
RewriteRule ^(img|css|js)/(.*) web/$1/$2 [L,QSA]
该应用程序当前位于 Web 服务器的根目录中。我想将其移动到子目录,但这样做后应用程序不再起作用。我尝试添加,RewriteBase /newdir
但这只能使主页起作用,而不能使 css/img/js 目录起作用。
理想情况下,我不想改变现有的规则,而是添加额外的规则。
答案1
首先,我认为 RewriteBase /newdir 是正确的,这会在新目录中应用您的规则,该规则运行良好。
其次,您可能需要从最后一条规则中删除插入符号 (^),类似这样的操作应该有效。
重写规则^(.)/(图片|css|js)/(.) 网页/$2/$3 [L,QSA]