سلام.
شما نیاز به ساخت یا استفاده از یک Router دارید.
اون آدرسی که شما فارسی توی مرورگر تایپ میکنید برای وب سرور معنایی نداره . فریمورکی مثل لاراول هم که میبینید با اسلاگ فارسی کار میکنه از طریق روتر این request رو هندل میکنه و شما براش تعریف میکنید که این آدرس درخواست شده باید بره از فیلد Slug توی دیتابیس خونده بشه.
توضیحات بالا فقط برای روشن تر شدن موضوع بود. میتونید خودتون یک روتر بسازید و یا روتر های موجود رو به پروژتون اضافه کنید.
کلیات کار اینطوریه :
در کل خیلی موارد زیادی باید در نظر گرفته بشه مثل انواع ریکوئست های POST GET و ... .
سعی کردم کلیات رو خیلی روان و ساده توضیح بدم انشالا خودتون با جستجو بیشتر عمیق تر جلو میرید.
موفق باشید
سلام
من توی پروژه هام همیشه از این تابع استفاده میکنم برای اسلاگ فارسی:
function slugify($string, $separator = '-') {
$_transliteration = ["/ö|œ/" => "e",
"/ü/" => "e",
"/Ä/" => "e",
"/Ü/" => "e",
"/Ö/" => "e",
"/À|Á|Â|Ã|Å|Ǻ|Ā|Ă|Ą|Ǎ/" => "",
"/à|á|â|ã|å|ǻ|ā|ă|ą|ǎ|ª/" => "",
"/Ç|Ć|Ĉ|Ċ|Č/" => "",
"/ç|ć|ĉ|ċ|č/" => "",
"/Ð|Ď|Đ/" => "",
"/ð|ď|đ/" => "",
"/È|É|Ê|Ë|Ē|Ĕ|Ė|Ę|Ě/" => "",
"/è|é|ê|ë|ē|ĕ|ė|ę|ě/" => "",
"/Ĝ|Ğ|Ġ|Ģ/" => "",
"/ĝ|ğ|ġ|ģ/" => "",
"/Ĥ|Ħ/" => "",
"/ĥ|ħ/" => "",
"/Ì|Í|Î|Ï|Ĩ|Ī| Ĭ|Ǐ|Į|İ/" => "",
"/ì|í|î|ï|ĩ|ī|ĭ|ǐ|į|ı/" => "",
"/Ĵ/" => "",
"/ĵ/" => "",
"/Ķ/" => "",
"/ķ/" => "",
"/Ĺ|Ļ|Ľ|Ŀ|Ł/" => "",
"/ĺ|ļ|ľ|ŀ|ł/" => "",
"/Ñ|Ń|Ņ|Ň/" => "",
"/ñ|ń|ņ|ň|ʼn/" => "",
"/Ò|Ó|Ô|Õ|Ō|Ŏ|Ǒ|Ő|Ơ|Ø|Ǿ/" => "",
"/ò|ó|ô|õ|ō|ŏ|ǒ|ő|ơ|ø|ǿ|º/" => "",
"/Ŕ|Ŗ|Ř/" => "",
"/ŕ|ŗ|ř/" => "",
"/Ś|Ŝ|Ş|Ș|Š/" => "",
"/ś|ŝ|ş|ș|š|ſ/" => "",
"/Ţ|Ț|Ť|Ŧ/" => "",
"/ţ|ț|ť|ŧ/" => "",
"/Ù|Ú|Û|Ũ|Ū|Ŭ|Ů|Ű|Ų|Ư|Ǔ|Ǖ|Ǘ|Ǚ|Ǜ/" => "",
"/ù|ú|û|ũ|ū|ŭ|ů|ű|ų|ư|ǔ|ǖ|ǘ|ǚ|ǜ/" => "",
"/Ý|Ÿ|Ŷ/" => "",
"/ý|ÿ|ŷ/" => "",
"/Ŵ/" => "",
"/ŵ/" => "",
"/Ź|Ż|Ž/" => "",
"/ź|ż|ž/" => "",
"/Æ|Ǽ/" => "E",
"/ß/" => "s",
"/IJ/" => "J",
"/ij/" => "j",
"/Œ/" => "E",
"/ƒ/" => ""];
$quotedReplacement = preg_quote($separator, '/');
$merge = [
'/[^\s\p{Zs}\p{Ll}\p{Lm}\p{Lo}\p{Lt}\p{Lu}\p{Nd}]/mu' => ' ',
'/[\s\p{Zs}]+/mu' => $separator,
sprintf('/^[%s]+|[%s]+$/', $quotedReplacement, $quotedReplacement) => '',
];
$map = $_transliteration + $merge;
unset($_transliteration);
return preg_replace(array_keys($map), array_values($map), $string);
}
@amirvahedix
سلام
من فارسی ک تو url میارم کلا این ارور رو میده :
The requested URL /modmo/products/27/بلوز-مردانه-Øوشکل was not found on this server.
Apache/2.4.37 (Win64) PHP/7.2.14 Server at localhost Port 80
سلام.
شما نیاز به ساخت یا استفاده از یک Router دارید.
اون آدرسی که شما فارسی توی مرورگر تایپ میکنید برای وب سرور معنایی نداره . فریمورکی مثل لاراول هم که میبینید با اسلاگ فارسی کار میکنه از طریق روتر این request رو هندل میکنه و شما براش تعریف میکنید که این آدرس درخواست شده باید بره از فیلد Slug توی دیتابیس خونده بشه.
توضیحات بالا فقط برای روشن تر شدن موضوع بود. میتونید خودتون یک روتر بسازید و یا روتر های موجود رو به پروژتون اضافه کنید.
کلیات کار اینطوریه :
در کل خیلی موارد زیادی باید در نظر گرفته بشه مثل انواع ریکوئست های POST GET و ... .
سعی کردم کلیات رو خیلی روان و ساده توضیح بدم انشالا خودتون با جستجو بیشتر عمیق تر جلو میرید.
موفق باشید
@SobhanDadkhah
پارامتر فارسی رو که از url جدا کردم باید به کنترل بفرسم و چک کنه چه پستی مثلا این اسلاگ رو داره و با اسلاگ url برابره و اون رو بیاد نمایش بده؟مراحلو درست توضیح دادم؟
@hamzehhemmati0
بله. توضیحتون درسته.
توی معماری MVC دقیقا همینه. ریکوئست بررسی میشه و به کنترلر فرستاده میشه و همراه اون ریکوئست پارامتر فارسی که گفتین هم به کنترلر میره و اونجا هرکاری میشه کرد . مثلا داخل دیتابیس دنبال همچین اسلاگی بگردین و بقیه داستان. اما اگر اشتباه نکنم توی لاراول این موارد اتوماتیک انجام میشه که بهش میگن Route Model Binding.
در کل شاید اطلاعات بنده هم کمی ناقص باشه اما پیشنهاد میکنم حتما راجع به روتر سرچ کنید خیلی موارد آموزنده ای داره
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟