ورود

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : مشکل در rewrite کردن url در nginx



omidrezav
December 4th, 2013, 21:56
دوستان سلام،
ما روی یه وب سرور nginx وردگرس آوردیم بالا و شکر خدا همه چیش عالیه. فقط به یه مشکل عجیب برخوردیم:

می خواهیم یه سری از آدرسای قدیمی مون رو روی آدرس جدید rewrite کنیم. توی آدرسهای انگلیسی مشکلی نیست ولی وقتی نوبت آدرسای فارسی میرسه کلا کار نمی کنه. کسی راه حلی برای این قضیه داره؟ ممنون میشم اگر راهنمایی بفرمایید.

nginxweb
December 4th, 2013, 21:59
درود

روی url های فارسی چه اروری دارید؟

ضمنا تنظیمات rewrite در nginx.conf را نیز قرار دهید

omidrezav
December 4th, 2013, 22:21
درود

روی url های فارسی چه اروری دارید؟

ضمنا تنظیمات rewrite در nginx.conf را نیز قرار دهید

با توجه به اینکه url های قدیمی دیگر وجود ندارند و rewrite ها هم کار نمی کنند خطای 404 داریم. این هم نمونه ی rule استفاده شده در nginx.conf:

rewrite ^/بازی/$ /دانلودبازی
rewrite ^/contact/$ /contact-us

نمونه ی انگلیسی بدون مشکل کار می کند ولی نمونه ی فارسی با اشکال مواجه می شود.

nginxweb
December 4th, 2013, 22:26
برای خود وردپرس چه rewrite کدی استفاده کردید؟

omidrezav
December 4th, 2013, 22:33
برای خود وردپرس چه rewrite کدی استفاده کردید؟


برای rewrite وردگرس از try_files استفاده کردم.




location / {
root /var/www;
index index.html index.htm index.php;
try_files $uri $uri/ /index.php?q=$request_uri;
}

nginxweb
December 4th, 2013, 22:44
درود

بر rewrite زیر استفاده نمایید

location / {
try_files $uri $uri/ /index.php?$args;
}

همچنین دقت کنید حتما مازول HttpCoreModule همراه با nginx روی سرور compile شده باشد

omidrezav
December 4th, 2013, 22:59
درود

بر rewrite زیر استفاده نمایید

location / {
try_files $uri $uri/ /index.php?$args;
}

همچنین دقت کنید حتما مازول HttpCoreModule همراه با nginx روی سرور compile شده باشد

HttpCoreModule همراه nginx کامپایل شده. موردی که گفتید رو هم اصلاح کردم ولی توفیقی نیافتم.

compiler
December 5th, 2013, 19:56
تو بلاک دامنه مربوطه زیر index.php اینو اضافه کنید :

if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?q=$1 last;
break;
}

service nginx restart

تمام....