【问题标题】:How to use mod_rewrite on an Nginx如何在 Nginx 上使用 mod_rewrite
【发布时间】:2014-03-01 16:09:05
【问题描述】:

我想使用 Nginx 服务器而不是 Apache。在我的.htaccess 文件中,我有这行。

RewriteEngine On  

RewriteCond %{SCRIPT_FILENAME} !-d  
RewriteCond %{SCRIPT_FILENAME} !-f  

RewriteRule ^.*$ ./nice_urls.php

任何想法如何在 Nginx 上工作?

【问题讨论】:

标签: php .htaccess mod-rewrite nginx url-rewriting


【解决方案1】:

Nginx 不支持 .htaccess 文件。

简单的方法是在 nginx 配置文件中为您的 vhost 使用以下规则:

try_files $uri $uri/ /nice_urls.php?$args;

在 Nginx 上,try_files 基本上是典型 mod_rewrite 样式文件/目录存在检查的替代品。它应该比使用 if 更有效 - 见http://wiki.nginx.org/IfIsEvil

您还必须配置 Nginx 以将 SCRIPT_FILENAME 返回到您的应用程序。 如果你使用 fastcgi,你必须检查 fastcgi.conf 是否有这一行:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
如果此行不存在,请将其添加到 fastcgi.conf 或您的 vhost 配置文件中。

【讨论】:

    猜你喜欢
    • 2014-12-31
    • 1970-01-01
    • 2018-11-22
    • 2015-09-20
    • 1970-01-01
    • 1970-01-01
    • 2015-08-31
    • 1970-01-01
    • 2015-07-26
    相关资源
    最近更新 更多