我以前问过这个问题,但由于错误的原因,这个问题被关闭了。
从本质上讲,我的文件夹中包含一个PHP文件{dynamic}/blog/index.php
。
我如何才能让别人访问example.com/folders/{dynamic}/blog/unique
,就好像它是一个真正的HTML/PHP文件一样?
本质上,unique
是一个名为id
的唯一GET变量,代表example.com/folders/{dynamic}/blog?id=unique
。
{dynamic}
可以是任何东西,因为folders
下有数百个不同的文件夹,所以我不能为每个文件夹创建单独的规则。
我使用的是NGINX,所以无法编辑.htaccess
文件-如何使用NGINX?
因此,这必须适用于除少数文件外的所有文件。
有些ID(大约5个(应该指向它们的真实文件名,而不是动态GET变量。
例如,example.com/folders/{dynamic}/blog/example
表示目录中名为example.php
的实际文件
您可以使用以下重写规则根据您的期望配置
location / {
rewrite ^/folders/(.*)/blog/example$ /folders/$1/blog/example.php last;
rewrite ^/folders/(.*)/blog/(.*)$ /folders/$1/blog/index.php?id=$2;
}
注意:与example.php一样,对于您希望指向其真实文件名的其他特定ID(约5个(,您可以根据需要编写重写规则。
上述配置将解决如下问题。我在本地中测试了这个
Request Url : http://localhost/folders/a/blog/hello
Resolved Url : http://localhost/folders/a/blog/index.php?id=hello
Request Url : http://localhost/folders/b/blog/hello
Resolved Url : http://localhost/folders/b/blog/index.php?id=hello
Request Url : http://localhost/folders/a/blog/example
Resolved Url : http://localhost/folders/a/blog/example.php
Request Url : http://localhost/folders/b/blog/example
Resolved Url : http://localhost/folders/b/blog/example.php