希望有人可以帮助我。 意识到;对不起,可能是英语不好;) 我正在尝试几个小时来设置我的配置,所以我的网站可以访问没有PHP扩展,但将重定向任何扩展请求,另外从URL中删除/索引。
我已经达到了每个扩展名都将被删除并仍然通过php5-fpm进行解析的程度。
这是我目前的代码:
server {
listen 80;
server_name example.com;
root /var/www/example.com;
index index.php;
<<unrelated Modulecode>>
rewrite ^(.*).php(.*)$ $1$2 permanent; # << forces index to be appended, so not exactly wanted
#rewrite ^/index$ / permanent; >> results in infinity loop for indexpage
# location ~ ^(.*)(?<!(index)).php(.*)$ { # << even don't know how to at least except index...gwarz regex x|
# rewrite ^(.*).php(.*)$ $1$2 permanent;
# }
location / {
try_files $uri $uri/ @phprule;
}
location ~ \.php$ {
try_files $uri $uri/ 404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location @phprule {
rewrite ^(.*)$ $1.php last;
}
}
未注释的部分是一些绝望的尝试,以某种方式使它工作x&lt;
所以我想要完成的事情:
example.com/index.php =&gt; example.com /
example.com/foo.php =&gt; example.com/foo
example.com/some/path/foo.php =&gt; example.com/some/path/foo
希望你能得到这个想法。答案 0 :(得分:0)
可能已经找到了这个问题或继续前进,但为了后来的人的利益,这些小小的改变为我做了诀窍:
location @phprule {
rewrite ^/(.*)$ "/$1.php" last;
}
/
添加到正则表达式,引号和正斜杠添加到重写字符串。