我认为我丢了一点。
我尝试了一些解决方案,但我没有得到一部分。一切都必须由index.php处理,我无法在Nginx中使用它。我一直在学习nginx,这是很棒的,但真的很感谢某人的快速帮助。
我的.htaccess:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?_route_=$1 [L,QSA]
和我的nginx配置是:
server {
listen 80;
listen [::]:80;
root /folder;
index index.php index.html index.htm index.nginx-debian.html;
server_name hostname.com;
location / {
try_files $uri $uri/ =404;
}
location ~ .php$ {
try_files = $uri @missing;
fastcgi_split_path_info ^(.+.php)(/.+)$;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location @missing {
rewrite ^ $scheme://$host/index.php permanent;
}
}
有人可以将我指向正确的方向吗?谢谢
任何不以.php
结尾的URI均由location /
块处理。如果要实现Apache .htaccess
规则,那应该在此完成。请参阅此文档以获取更多信息。
例如:
location / {
try_files $uri $uri/ /index.php?_route_=$uri;
}
在location ~ .php$
块中,您应该防止将不受控制的请求传递给PHP,例如:
location ~ .php$ {
try_files $uri =404;
...
}