Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache nginx配置目标是htaccess这样的文件夹_Apache_.htaccess_Mod Rewrite_Nginx_Configuration - Fatal编程技术网

Apache nginx配置目标是htaccess这样的文件夹

Apache nginx配置目标是htaccess这样的文件夹,apache,.htaccess,mod-rewrite,nginx,configuration,Apache,.htaccess,Mod Rewrite,Nginx,Configuration,我正在从Apache迁移到nginx,在整个站点中有许多.htaccess文件(例如example.com/.htaccess、example.com/folder/.htaccess) 我拥有的.htaccess文件的一个示例是: # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^do_ajax\.php /wp-admin/admin-ajax.php [Q

我正在从Apache迁移到nginx,在整个站点中有许多.htaccess文件(例如example.com/.htaccess、example.com/folder/.htaccess)

我拥有的.htaccess文件的一个示例是:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^do_ajax\.php /wp-admin/admin-ajax.php [QSA,L]
</IfModule>
# END WordPress
由于nginx配置位于/etc/nginx/nginx.conf中,以所有文件而不是文件夹为目标,我是否可以做些什么使其以特定文件夹为目标(例如,如果www.example.com的上述文件夹位于/usr/share/nginx/html/example/)?

您需要在匹配中包括“文件夹”部分:

rewrite ^/folder/ajax /wp-admin/admin-ajax.php last;
因为这些nginx规则不是针对目录上下文的。但如果需要将它们组合在一起,可以使用:


如果您想将它们组合在一起,但仍然需要正则表达式前面的
/folder/

谢谢您的回复。如果将其设置为folder.example.com,文件夹位于/usr/share/nginx/html/example/,该怎么办?我将设置其他文件夹,如folder2.example.com(/example2/)等等。
rewrite ^/folder/ajax /wp-admin/admin-ajax.php last;
location /folder/ {
   rewrite ^/folder/ajax /wp-admin/admin-ajax.php last;
}