求助:如何将Apache .htaccess的mod_rewrite规则转换为Nginx规则
Apache .htaccess重写规则转Nginx配置方案
对应转换后的Nginx配置
将以下配置写入你的站点Nginx配置的server块中即可:
location / { try_files $uri $uri/ /index.php?game=$uri$is_args$args; }
规则对应说明
- 原有Apache规则中
RewriteCond %{REQUEST_FILENAME} !-f、RewriteCond %{REQUEST_FILENAME} !-d的「判断请求路径不是存在的文件/目录才触发重写」逻辑,对应Nginx的try_files $uri $uri/部分,真实存在的静态资源会直接返回,不需要走PHP解析,性能更优 - 原有
RewriteRule ^(.*)$ index.php?game=$1的重写逻辑对应/index.php?game=$uri,内置变量$uri会自动获取当前请求的路径内容,追加$is_args$args是为了保留原请求附带的其他GET参数,避免参数丢失
生效步骤
- 保存修改后的Nginx配置文件
- 执行
nginx -t命令校验配置语法是否合法,返回test is successful再进行下一步 - 执行重载命令让配置生效:
- Debian/Ubuntu系统:
systemctl reload nginx - CentOS/RHEL系统:
systemctl reload nginx.service
- Debian/Ubuntu系统:
内容的提问来源于stack exchange,提问作者EmersonAaron
相关产品推荐
相关产品推荐

