如何使 URL 与 php 文件的路径不同(Nginx)

How to make the URL different from the path of the php file (Nginx)

我想知道如何使我网站的 URL 不同于我网站目录中文件的路径。

例如,假设我希望我的网站语言使用 URL (mywebsite/en/index.php),但我不想手动创建每个 php 我的网站目录中的文件只包含我的主要文件中的一个包含,请问我该怎么做?如果需要,我正在使用 Nginx

您可以使用nginx 重写正则表达式规则。 Nginx rewrite rules

假设您希望下面的 url 使用语言代码点击 index.php。

Url: https://yourwebsite.com/en/index.php
FilePath: /path/to/www/index.php
rewrite ^/(.*)/index.php$ /index.php?lang= last;

# another example
#  is the matching characters in regex `(.*)`
rewrite ^/sales/(.*)/categories.php$ /some/path/cat.php?categories= last;

别忘了。所有 URL 都是虚构的,但所有文件都是真实的。 URLs 不需要匹配真实文件。 URL: https://yourwebsite.com/index.php 可能命中 /some.file.asp

查看nginx官方文档了解更多详情。

希望对您有帮助。