У меня есть фон NGINX на моем сервере. Я не могу выяснить, почему мои правила не работают.
Как может я перенаправлять, или переписывать его так я мог открыть URL с тем же содержанием, например:
http://www.example.com/my_dir/value/
Если у меня есть этот URL, например:
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 для, получают его работа?
Какие-либо идеи?
Спасибо!
Посетите: domain.com/folder/abc -> domain.com/folder/filenam.php?url=abc
//this is inside the http block
map $request_uri $request_basename {
~/(?<captured_request_basename>[^/?]*)(?:\?|$)
$captured_request_basename;
}
server {
[snip]
location /folder {
try_files folder folder/ /folder/filename.php?url=$request_basename;
}
}
Просто используйте эту директиву try_files внутри блока вашего сервера:
try_files my_dir my_dir/ /my_dir/filename.php?$args;