设置.conf文件以允许URL中的“通配符”

时间:2016-11-09 01:26:42

标签: php nginx

不确定这是否可行,但我要做的是让用户定向到完全相同的目录和文件,无论他们来自哪个特定的URL路径。

例如,我希望test.mysite.com/person1test.mysite.com/person2来到同一个索引页。

我的.conf(nginx)的一些伪代码:

server {
    listen 80;
   server_name  test.mysite.com/person1; 
   location / {
       root  /home/testing/public_html;
       index index.html; 
     try_files                   $uri $uri/ /index.php?$args; 
       port_in_redirect off;
}

我可以这样做:

server {
    listen 80;
   server_name  test.mysite.com/*; //Something here that indicates wildcard
   location / {
       root  /home/testing/public_html;
       index index.html; 
     try_files                   $uri $uri/ /index.php?$args; 
       port_in_redirect off;
}

这一点的全部意义在于,我将向包含其姓名的人提供“个人”网址:test.mysite.com/person1。我将使用javascript获取URL的唯一部分(“person1”),并使用它通过PHP等提供自定义内容。

基本上,我不希望URL的最后一部分更改我为其提供索引文件的目录。

感谢。

1 个答案:

答案 0 :(得分:0)

这里的诀窍是改变server_name而不是location

server {
   listen 80;
   server_name  ~^(test).*\.mysite\.com$; 
   location / {
   root  /home/testing/public_html;
   index index.html; 
 try_files                   $uri $uri/ /index.php?$args; 
   port_in_redirect off;
}