10

我的 apache 有以下 .htaccess 文件:

<IfModule mod_rewrite.c>
  Options +FollowSymlinks    
# Options +SymLinksIfOwnerMatch
  RewriteEngine On
  RewriteBase /
  RewriteRule ^$          index.php       [L]
  RewriteCond %{REQUEST_FILENAME}         !-f
  RewriteCond %{REQUEST_FILENAME}         !-d
  RewriteRule (.*)        index.php?page=$1  [QSA,L]
</IfModule>

突然我不得不将我的网络服务器更改为 nginx,我不知道为什么,但是 mod 重写不起作用。

我使用在线“转换器”来转换它,所以我有以下内容:

location / {
  rewrite ^/$ /         index.php       break;
  if ($request_filename ~         !-f){
    rewrite ^(.*)$ /       index.php?page=$1   break;
  }
}

你能帮我看看有什么问题吗?

在此先感谢,马塞尔

4

2 回答 2

19

http://web.archive.org/web/20180812021847/https://blog.martinfjordvald.com/2011/02/nginx-primer-2-from-apache-to-nginx/

一切都在里面。没有更多的 .htaccess,没有更复杂的规则使用 try_files。

编辑:如果不是很明显,不要相信在线转换器。

于 2013-02-19T21:14:48.537 回答
0

$ sudo vim /etc/nginx/sites-available/default

  location / {
        try_files $uri $uri/ =404;
    }

location / {
    try_files $uri $uri/ /index.php?$args;
}
于 2017-09-25T10:02:05.483 回答