将用户从page.php重定向到使用nginx的页面

将用户从page.php重定向到使用nginx的页面,php,nginx,url-rewriting,Php,Nginx,Url Rewriting,我有以下服务器块: server { listen 80; server_name petpal.co.il; root /usr/share/nginx/petpal; index index.php; rewrite ^/([a-zA-Z]+)\-([0-9\-]+)$ /$1.php?page=$2? last; rewrite ^/en/([a-zA-Z]+)\-([0-9\-]+)$ /en/$1.php?page=$2? last;

我有以下服务器块:

server {
    listen 80;
    server_name petpal.co.il;
    root /usr/share/nginx/petpal;
    index index.php;
    rewrite ^/([a-zA-Z]+)\-([0-9\-]+)$ /$1.php?page=$2? last;
    rewrite ^/en/([a-zA-Z]+)\-([0-9\-]+)$ /en/$1.php?page=$2? last;
    location / {
        try_files $uri $uri/ @extensionless-php;
    }
    location @extensionless-php {
        rewrite ^(.*)$ $1.php last;
    }
    set $lang "";
    if ($uri ~ "^/en/") {set $lang "en/";}
    error_page 404 /${lang}notfound;
    location ~ \.php$ {
        try_files $uri =404;
        client_max_body_size 4M;
        fastcgi_read_timeout 300;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}
它已经可以处理url重写(处理petpal.co.il/dogs as dogs.php),但是,我想避免人们访问page.php,这样就不会有重复的页面(同一个页面名为x和x.php),所以我只想添加一个规则,将人们从page.php重定向到没有.php的页面,或者至少显示一个404未找到的页面(你认为什么更好?)

希望我解释清楚,有什么线索吗?
谢谢!

我不确定我是否完全理解您的问题,但您可以做以下操作,而不是编写规则

  • 创建一个文件夹
  • 在其中创建index.php文件并编辑该文件
现在,如果您转到petpal.co.il/dogs,它将显示petpal.co.il/dogs/index.php

用户仍然可以访问dogs/index.php,但它不是重复页面


希望有帮助!

我不确定我是否完全理解您的问题,但您可以做以下操作,而不是编写规则

  • 创建一个文件夹
  • 在其中创建index.php文件并编辑该文件
现在,如果您转到petpal.co.il/dogs,它将显示petpal.co.il/dogs/index.php

用户仍然可以访问dogs/index.php,但它不是重复页面


希望有帮助!

为每个文件创建目录?对我来说,这听起来不是一个合适的解决方案,必须有一些简单的规则可以做到,无论如何,谢谢:)这是我所能想到的,我不知道任何其他解决方案。为每个文件创建目录?对我来说,这听起来不是一个合适的解决方案,一定有一些事情可以用一个简单的规则来完成,无论如何,谢谢:)这是我所能想到的,我不知道还有其他解决方案。