我想隐藏我的扩展名,例如 .php
但这不仅仅是隐藏,如果我输入index.do nginx重写为index.php但是,url地址必须相同(index.do)
总而言之,我特别想要的是
example.com/index.jsp,
example.com/index.html,
example.com/index.asp,
example.com/index.js,
example.com/index.do,
example.com/indexanystring[]~?&/^,
example.com/index
必须全部重写为index.php。此外,地址必须保持不变。
如果输入“example.com/indexanystring”,url 应该是“example.com/indexanystring”,并且 index.php 应该可见
我见过的一个网站似乎使用 nginx 来实现该功能。我认为从安全角度来看它很好,所以我打算尝试一下。
以下是我尝试过的 nginx 配置
...
location / {
try_files $uri $uri/ @rewrite;
}
location @rewrite {
rewrite ^ $uri.php last;
}
location ~ /roulette/index(.*)$ {
rewrite ^ $uri/index.php;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/run/php/php5.6-fpm.sock;
include fastcgi_params;
}
...
但它没有按我想要的方式工作
答案1
我自己解决了。
这是我的设置
rewrite ^/index.* /index.php break;
但我不知道它是否安全。