2015-10-16 99 views
1

我的服務器上有一個NGINX背景。我無法弄清楚爲什麼我的規則不起作用。NGINX URL參數重寫爲無參數的URL

我如何可以重定向或重寫,所以我可以打開網址具有相同的內容,例如:

http://www.example.com/my_dir/value/ 

如果我有這樣的網址,例如:

http://www.example.com/my_dir/filename.php?parameter=value 

我嘗試了一些解決方案,但他們沒有工作:

Case #1: 
location /my_dir/ { 
    if ($args ~* "filename.php/?parameter=value1") { 
     rewrite^http://www.example.com/my_dir/$arg_param1? last; 
    } 
} 

Case #2: 
rewrite ^/my_dir/(.*)$ /filename.php?parameter=$1 last; 

Case #3: 
location /my_dir { 
    try_files $uri $uri/ my_dir/filename.php?$args; 
} 

Case #4: 
location /my_dir/ { 
    rewrite ^/my_dir/filename.php?parameter=(-+([a-zA-Z0-9_-]+))?\$ /filename.php?parameter=$1 last; 
} 

我必須配置我的PHP文件,讓它工作嗎? 任何想法?

謝謝!

回答

2

試試這個:

location/{ 

    rewrite ^/my_dir/filename.php?parameter=(.*)/$ /my_dir/$1/ permanent; 
} 

或者:

location /my_dir { 

    rewrite ^/filename.php?parameter=(.*)/$ /$1/ permanent; 
}