2016-01-22 5 views
1

Привет Я хочу сделать Nginx переписать, как fllowingNginx URL Rewrite (Нет Перенаправление)

http://my-domain/Canada

в

http://my-domain/rates/callrates.php?c=Canada

пользователь увидит URL, как http://my-domain/Canada и PHP будет выполнять страницу в следующем URL-адресе

http://my-domain/rates/callrates.php?c=Canada

как включить это в nginx.conf?

server 
{ 
    listen 80; 
    server_name my-domain.com; 
    access_log /home/www/my-domain/logs/access.log; 
    error_log /home/www/my-domain/logs/error.log; 
    root /home/www/my-domain/public_html; 
    location/{ 
     index index.php login.php; 
    try_files $uri $uri/ $uri.php?$query_string @extensionless-php; 
    error_page 404 /404.php;  
    } 
location ~* ^/(?<country>\w+)$ { 
    rewrite^/testring/callrates.php?c=$country last; 
} 
location ~ \.html$ 
{ 
    if (!-f $request_filename) 
    { 
     rewrite ^(.*)\.html$ $1.php last; 
    } 
} 
location ~ .*\.php$ 
    { include /etc/nginx/fastcgi_params; 
     fastcgi_pass 127.0.0.1:9000; 
     fastcgi_index index.php; 
     fastcgi_param SCRIPT_FILENAME /home/www/r2wconnect.com/public_html$fastcgi_script_name; 
    } 
location @extensionless-php 
{ 
    rewrite ^(.*)$ $1.php last; 
} 
} 

+0

Я не могу видеть, как новый блок места перерывов ' .css' и '.js', если их URL-адреса не имеют расширения и поэтому выглядят как URL-адрес страны. –

+0

Привет, мне удалось это исправить. это связано с базовым url в заголовке html. теперь все работает отлично. большое спасибо за время – Vigikaran

ответ

1

Если предположить, что у вас уже есть рабочая конфигурация PHP ...

Если домен не делает ничего другого, действие по умолчанию может быть, чтобы вызвать скрипт с:

location/{ 
    try_files $uri /rates/callrates.php?c=$uri; 
} 

Вышеуказанный эффект имеет побочный эффект от удержания в ведущем /.

Если вы хотите, чтобы сделать правило более специфичным, вы могли бы защитить его с регулярным выражением (которое также извлекает название страны правильно):

location ~* ^/(?<country>\w+)$ { 
    rewrite^/rates/callrates.php?q=$country last; 
} 
+0

Привет i treid, но он дает ошибку 404 для css, js-файлов – Vigikaran

+0

Если вы отредактируете свой вопрос и добавите существующий блок 'server', мы можем предоставить совет по интеграции вышеперечисленного в него. –

+0

У меня есть вопрос, со всеми моими блоками – Vigikaran

Смежные вопросы