将使用 .htaccess 中重写规则的应用程序移动到子目录

将使用 .htaccess 中重写规则的应用程序移动到子目录

如何将使用重写规则且位于 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]

相关内容