我在Apache的子文件夹“子文件夹”中有一个应用程序,所以我可以使用一个URL,例如: https://example.com/subfolder/#/v2/login : https://example.com/subfolder/#/v2/login而不是https://example.com/#/v2/login 。
我在我的htdocs文件夹中的.htaccess文件中有以下内容:
Options +FollowSymLinks -MultiViews RewriteEngine On RewriteBase / RewriteRule ^(?!subfolder/).* subfolder/$0 [L,NC]
问题是,即使对于我的服务器的根URL,它也在进行重写。 例如,如果我转到https://example.com/ ,我会在“子文件夹”中看到我的应用程序的主页。 我想这个重写规则只适用于“子文件夹”中的应用程序。
我也尝试把.htaccess文件放在“子文件夹”里,但是不起作用。
RewriteRule ^(?!subfolder/).* subfolder/$0 [L,NC]
要仅排除根URL(在.htaccess ),您可以将RewriteRule模式更改为匹配1个或多个( .+ )字符,而不是您当前拥有的0个或多个( .* )字符:
RewriteRule ^(?!subfolder/).+ subfolder/$0 [L,NC]
或者,要排除网站根目录中的所有文件(或任何其他地方),请包含两个附加条件:
RewriteBase /subfolder RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(?!subfolder/).+ $0 [L,NC]