Url rewriting nginx php文件重写url

Url rewriting nginx php文件重写url,url-rewriting,nginx,rewrite,Url Rewriting,Nginx,Rewrite,因此,对于apache,我有一个文件夹: www.domain.com/folder/folder1/index.php?word=blahblah 我希望访问www.domain.com/folder/folder1/blahblah的用户被重定向到上述URL,而不改变URL 因此,我在文件夹/folder1/中拥有以下.htaccess,它可以完美地工作: RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{

因此,对于apache,我有一个文件夹:

www.domain.com/folder/folder1/index.php?word=blahblah

我希望访问www.domain.com/folder/folder1/blahblah的用户被重定向到上述URL,而不改变URL

因此,我在文件夹/folder1/中拥有以下.htaccess,它可以完美地工作:

RewriteEngine on

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

RewriteRule ^(.+)$ index.php?word=$1
所以我想用nginx实现相同的功能,我使用了两个转换器: 结果:

if (!-f $request_filename){
    set $rule_0 1$rule_0;
}
if (!-d $request_filename){
    set $rule_0 2$rule_0;
}
if ($rule_0 = "21"){
    rewrite ^/(.+)$ /index.php?word=$1;
}
 if (!-e $request_filename){ rewrite ^(.+)$ /index.php?word=$1; }
结果是:

if (!-f $request_filename){
    set $rule_0 1$rule_0;
}
if (!-d $request_filename){
    set $rule_0 2$rule_0;
}
if ($rule_0 = "21"){
    rewrite ^/(.+)$ /index.php?word=$1;
}
 if (!-e $request_filename){ rewrite ^(.+)$ /index.php?word=$1; }
现在,我两种都试过了,但都不管用。我试着把它们插入

location / {
}
或者

或者

在所有位置,我都会遇到404错误

nginx错误报告“从上游读取响应头时主脚本未知”或“没有这样的文件或目录”

有人能告诉我吗


提前谢谢

首先,如果,不要使用
。如果是邪恶->

您可以使用以下重写规则来完成此操作

rewrite ^/folder/folder1/(.*)$ /folder/folder1/index.php?word=$1 last;

把这个重写规则放在你的上面,这类工作就可以了。它有两个问题:a)它无法避免调用/folder/folder1/existing_file.txt的问题b)css出错了,根本没有css
rewrite^(.*(![\.js\.css])[^.]+)$/index.php/$1 last重写所有内容,仅忽略js和css文件。。。我是带着这个问题来到这里的。