Apache 将.htaccess规则转换为nginx
我正在尝试将apache服务器上诞生的站点移动到nginx服务器。 我拥有当前的.htaccess:Apache 将.htaccess规则转换为nginx,apache,.htaccess,mod-rewrite,nginx,Apache,.htaccess,Mod Rewrite,Nginx,我正在尝试将apache服务器上诞生的站点移动到nginx服务器。 我拥有当前的.htaccess: RewriteEngine on RewriteRule ^(Personal)($|/) - [L] RewriteRule ^mng/([-0-9a-zA-Z/%&]+)$ /index.php?aurl=$1 [L] RewriteRule ^([-0-9a-zA-Z/%&]+)$ /index.php?url=$1 [L] 联机转换器已将这些规则转换为: locatio
RewriteEngine on
RewriteRule ^(Personal)($|/) - [L]
RewriteRule ^mng/([-0-9a-zA-Z/%&]+)$ /index.php?aurl=$1 [L]
RewriteRule ^([-0-9a-zA-Z/%&]+)$ /index.php?url=$1 [L]
联机转换器已将这些规则转换为:
location /mng {
rewrite ^/mng/([-0-9a-zA-Z/%&]+)$ /index.php?aurl=$1 break;
}
location / {
rewrite ^/([-0-9a-zA-Z/%&]+)$ /index.php?url=$1 break;
}
我将它们添加到我的nginx配置中,但不起作用,我错在哪里?当我访问页面domain.ex/mng/index时,我可以下载该页面。。 这是我完整的nginx配置:
server {
listen 80;
listen [::]:80;
root /var/www;
index index.php index.html;
server_name domain.ex;
location / {
rewrite ^/([-0-9a-zA-Z/%&]+)$ /index.php?url=$1 break;
}
location /mng {
rewrite ^/mng/([-0-9a-zA-Z/%&]+)$ /index.php?aurl=$1 break;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
}
经过几次尝试,我用以下规则解决了问题:
location /mng/ {
rewrite ^/(.*)/(.*)$ /?aurl=$1;
}
location / {
rewrite ^/(.*)/(.*)$ /?url=$1;
}
你能告诉我你的服务器配置吗?我建议你检查一下这个页面:php7 fpm,nginx,但都很好。我知道这一点,我可以访问我的资源,比如index.php?url=1,效果很好。。