- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个网站需要从 Apache 服务器迁移到 Nginx 服务器。
本站.htaccess文件如下
RewriteEngine on
RewriteRule ^([^/\.]+)/?$ $1.php [L]
这会将 www.example.com/hello 重定向到 www.example.com/hello.php,保留原始链接,但从 url 末尾省略 .php。
我试图在我的 Nginx 服务器 block 中复制它..
location / {
# Check if a file exists, or route it to index.php.
try_files $uri $uri/ /index.php;
}
rewrite ^/([a-z]+)$ /$1.php last;
重写规则有效,将所有链接重定向到 .php 文件,但如果文件不存在,则打破 Nginx try_files 在目录内搜索的规则。
下面的管理示例链接是一个文件夹,里面有一个 index.php 文件。
www.example.com/admin
try_files 应该将其重定向到..
www.example.com/admin/
因为没有名为 admin.php 的文件。相反,我收到“未指定输入文件”消息。
当我删除重写时,try_files 工作正常。但是,如果没有此重写规则,站点的其余部分将无法工作。
有谁知道如何让 try_files 和重写一起工作?
谢谢
本
最佳答案
我知道这可能没有帮助,但我看了你的用例,我想知道你怎么知道/admin 的请求应该去/admin/而不是/admin.php?
我的意思是您的重写规则清楚地表明,如果您收到对/[a-z]+ 的请求,则应将其重写为/[a-z]+.php
但是你想要一个 try_files 将/admin 推送到/admin/吗?
查看您的 apache 规则:
RewriteRule ^([^/\.]+)/?$ $1.php [L]
我在这里看到您试图限制发送到 x.php 的内容。我在您的 nginx 重写中没有看到任何此类限制。
关于Nginx 重写规则/try_files 不能一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10122640/
我试图添加 try_files 来检查 php 文件是否存在,但它给了我错误。 "try_files" directive is duplicate in /etc/nginx/snippets/fa
我的目录: / |- static/ |- index.html // my pc page |- CKFM/ |-index.html // my mobile web app 更
我有一个图像位置设置,例如: location ~* ^/images/.+\.(jpg|jpeg|gif|png)$ { try_files /disk/$uri /images?uri=$u
我正在设置 nginx 以使用 React SPA。当我不包含可变路径 (/rsvp/) 时,页面加载正常。但是当我尝试 (/rsvp/S0mEtH1NG) 时,它会下载索引、 list 、css 文
我有一个网站需要从 Apache 服务器迁移到 Nginx 服务器。 本站.htaccess文件如下 RewriteEngine on RewriteRule ^([^/\.]+)/?$ $1.php
我正在使用 nginx 配置一个非常标准的网络服务器。服务器按预期工作,但是,我想了解一个小的配置细节。 我目前的配置是: index index.html index.htm index.php;
我正在尝试使用 php 代码向站点的/blog 子目录提供请求,该子目录位于文档根目录之外的文件夹中。这是我的主机配置: server { server_name local.test.ru
我试图了解 Nginx 的 try_files 是如何实现的指导性作品。 Nginx 正在我的服务器上运行,并提供位于 /usr/share/nginx/html/index.html 的默认页面。
我有一个简单的Angular单页应用程序,试图与Nginx docker镜像1.17.1版一起使用。 在Dockerfile中,我构建并打包Angular,然后将生成的文件复制到nginx图像。 FR
我想根据请求中的自定义 header 有条件地从缓存中获取文件。 如果请求中存在 X-Proxy header ,则仅当文件存在于缓存中时才返回该文件。否则,如有必要,请从互联网上获取它。 这是我的
我正在尝试将 Nginx 设置为反向代理,但也可以自己处理单个静态页面(问候语): root /usr/share/project/; location = / { try_files ind
我有这个文件夹结构: /document/root/ |-- main `-- wishlist 我想让我的 nginx 像这样工作:如果我将浏览器指向 example.com/wishlist,它将
我以这种方式使用位置部分使用 nginx 为 Angular 2 应用程序提供服务: location / { try_files $uri $uri/ /index.html =404; } t
当我将我的 php 文件放在/home/tim_test 中时,它工作正常 当我将文件放入/home/tim_test/hmm 时,它不起作用。为什么不呢? server { listen 8
我看起来既高又低,发现没有这样的实现,我想知道我正在尝试的是否可能。我有 3 个提供静态内容的相对路径: Path1: /usr/local/www/style1/static/... Path2:
我有一个奇怪的问题,它只影响我正在处理的一个本地应用程序 - 使用这种方法的其他应用程序似乎工作正常(Ghost)。这是来自我的 Nginx 服务器配置: location @node_proxy {
我正在使用 nginx 的 $geoip_country_code 模块根据 IP 重定向用户。我的配置代码如下- server { listen 80; gzip on;
我有一个简单的location在我的 nginx 配置中阻止与我的网站的静态文件匹配。我想要做的是使用 try_files 检查文件是否存在,如果没有,则重定向到一个 URL(在这种情况下,在 @cd
我需要一些帮助来配置 nginx 以从不同的文件夹加载文件。这是我的配置: index index.php; server { server_name domain.com; root
鉴于此文件夹结构: root folder + default + settings1.txt + settings2.txt ...
我是一名优秀的程序员,十分优秀!