Joomla SEF(从Apache转移到Nginx)

时间:2015-03-14 16:04:23

标签: .htaccess nginx joomla rewrite sef

我有一个Joomla网站,我想从Apache服务器迁移到Nginx。我的网站有3种语言,所有网址都以/en/ua/ru开头。启用S​​EF URL并在Apache上完美运行。

网站文件夹有.htaccess文件,其中(据我所知)最重要的指令是:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]
DirectoryIndex index.php index.html
Options +FollowSymLinks
Options -Indexes
<IfModule mod_rewrite.c>    
RewriteEngine On 
RewriteBase /    
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+) - [PT,L]
RewriteRule ^(.*) index.php
RewriteCond %{HTTP:Authorization}  !^$
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}]
</IfModule>

我使用了http://winginx.com/en/htaccess转换器,并将其结果放入/etc/nginx/site-available/domain.com文件:

index index.php index.html; 
autoindex off; 
location / { 
    if ($http_host ~* "^www.domain.com$")       { 
        rewrite ^(.*)$ http://domain.com/$1 redirect;
    } 
    if (-e $request_filename) {
        rewrite ^/(.*) /index.php;
    }
}

然后我读了一本手册(https://docs.joomla.org/Enabling_Search_Engine_Friendly_%28SEF%29_URLs#Nginx),但try_files $uri $uri/ /index.php?q=$request_uri;expires 1d; try_files $uri $uri/ /index.php?$args;也没有帮助我。

如果我尝试使用前一段中的指令在我的浏览器中打开网站,我会遇到5​​04(网关超时)错误; error.log包含下一个错误:

*1 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 176.***.**.***, server: domain.com, request: "GET /en/ HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "domain.com"

如果我不使用它并只使用从.htaccess转换的指令,那么我有500(内部服务器)错误,error.log包含下一个内容:

*1 rewrite or internal redirection cycle while internally redirecting to "/ru/", client: 176.***.**.***, server: domain.com, request: "GET /ru/ HTTP/1.1", host: "domain.com"

我尝试谷歌解决方案一整天,但我想我无法在没有专家帮助的情况下解决这个问题:(

同样在Joomla控制面板中,我发现&#34; SEF URL在Apache和IIS7&#34;上正常工作,并且没有关于Nginx的信息。虽然在docs.joomla.org有一个解决方案,但它没有工作或我做错了什么= /

请。救命啊!

0 个答案:

没有答案