以下是我的 .htaccess 文件中的一段。我想要 Apache 的以下行为(目前该站点位于 localhost,但这没关系,对吧?):
如果请求的资源不是
{site_url}/core
或者
{site_url}/login
喜欢
{site_url}/pseudo/path/name
提供的资源必须是
{site_url}/site/pseudo/path/name
否则,提供的 URL 必须是 {site_url}/core 或 {site_url}/login,即所请求的任何内容。
.htaccess 文件是:
<IfModule mod_alias.c>
AliasMatch ^/(?!core|login)(/?.*)$ /site/$2
Header add X-Enabled mod_alias
</IfModule>
但这似乎不起作用并返回错误。我对正则表达式不是很熟悉,我正在努力学习这些。所以我从这个表达式中推断出的是:
如果 '/' 之后的表达式,即 site_url 之后的 URI 与 core 或 login (?!core|login)) 不匹配,并且后跟任何内容,包括子文件夹 (/?.*)$ 可选斜杠,以及后面的任何内容,将别名设置为 /site/(第二个括号中匹配的任何内容)。
该模块正在工作,我只使用 Header add 部分进行了检查,问题是正则表达式。
请帮忙。