开发者社区 问答 正文

301重定向,AMH规则始终错误求助啊

规则如下:(网站是例子,都是301转向www.tjp.com)
if ($host = 'tjp.com' ) {
rewrite ^/(.*)$ http://www.tjp.com/$1 permanent;
}
if ($host = 'youm.com' ) {
rewrite ^/(.*)$ http://www.tjp.com/$1 permanent;
}
if ($host = 'www.youm.com' ) {
rewrite ^/(.*)$ http://www.tjp.com/$1 permanent;
}


错误如下


[警告] Nginx配置Rewrite规则错误,请查检改正。 [AMRewrite-1.0 admin] [OK] AMRewrite-1.0 is already installed. nginx: [emerg] unknown directive " " in /usr/local/nginx/conf/rewrite/yms.conf:2 nginx: configuration file /usr/local/nginx/conf/nginx.conf test failed

展开
收起
背包族 2015-01-07 09:18:06 5801 分享 版权
阿里云 AI 助理回答

根据您提供的错误信息,问题出在配置文件中存在未知指令的错误。错误提示为“unknown directive " in /usr/local/nginx/conf/rewrite/yms.conf:2”,这通常意味着在您的配置文件yms.conf`的第2行有一个空白或者不被Nginx识别的指令。

基于您给出的规则示例,看起来是想实现将多个域名301重定向到www.tjp.com的功能。首先,请确保您的配置文件中没有多余的空格、制表符或其他不可见字符导致的问题,特别是每条规则前后。然后,检查是否有遗漏的引号或括号等语法错误。

下面是修正后的配置示例,注意保持格式整洁且无多余字符:

server {
    listen 80;
    server_name tjp.com youm.com www.youm.com;

    if ($host = 'tjp.com' ) {
        return 301 http://www.tjp.com$request_uri;
    }

    if ($host ~* ^(youm\.com|www\.youm\.com)$ ) {
        return 301 http://www.tjp.com$request_uri;
    }
}

这个修正版做了以下几点改进: 1. 使用server_name指令一次性定义了所有需要处理的域名。 2. 用return 301替代了rewrite语句,这是更简洁和推荐的方式来实现永久重定向。 3. 利用了正则表达式(youm\.com|www\.youm\.com)来合并后两个条件判断,简化了配置。

请将上述内容替换到您的Nginx配置文件中的适当位置,并重新测试Nginx配置(通常使用nginx -t命令),最后重启Nginx服务以应用更改。如果问题仍然存在,请再次检查配置文件的其他部分,确保没有其他语法错误。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答分类:
问答地址: