我的站点在 Nginx 上运行,我正在尝试在站点的子目录中添加一个使用 Apache 的 mod_rewrite 规则的软件。例如 www.mydomain.com/mySubfolder
这是 Apache .htaccess
#Options -Indexes
<ifModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/system.*
RewriteRule ^(.*)$ index.php?/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?/$1 [L]
</ifModule>
到目前为止,我设法让主页正常工作,但是在请求登录页面时,它会导致 URL 重定向循环。例如 www.myDomain.com/login 用这个:
location /mySubfolder {
if (!-e $request_filename) {
rewrite ^(.*)$ /mySubfolder/index.php?q=$1 last;
break;
}
}
我一直在阅读并尝试学习如何将 Apache 转换为 Nginx,甚至使用了我在http://winginx.com/htaccess找到的 .htaccess 到 Nginx 转换器,但该工具似乎无法识别 %{REQUEST_URI} ^ /system.* 部分。经过我的研究和研究,我想出了:
location /mySubfolder {
if ($request_uri ~ "^/(system.*)$") {
rewrite ^/(.*)$ index.php?/$1 last;
}
if (!-e $request_filename) {
rewrite ^(.+)$ /mySubfolder/index.php?q=$1 last;
break;
}
}
我对此完全是个菜鸟,甚至想知道我是否接近完成这种转换为工作。请帮忙。
谢谢你。