رفع مشکل پیوند یکتا در وردپرس

1757 روز پیش

سلام، خیلی وقت بود که چیزی ارسال نکرده بودم، هر چند نکته های زیادی واسه نوشتن دارم ولی چون تو اولویت کارام نیست نمی نویسم!apache_mod_rewrite

به هر حال حالا می خوام درباره یه مشکل عمومی بنویسم. دوستان عزیز حتما می دونن که وردپرس به طور پیش فرض برای آدرس دهی به محتوای تولیدی خودش از روشی نامناسب استفاده میکنه، مثل

http://evazzadeh.com?p=12

 

همونطور که می بینید این روش برای آدرس دهی به محتوا آن چنان مناسب نیست. این روش رو با آدرس زیر مقایسه کنید

http://evazzadeh.com/1391/01/سوالات-مسابقات-مهارت/

 

بله؟ همونطور که می بینید روش آدرس دهی دوم به دلیل قابلیت خوانایی بالاتر به دلیل وجود عنوان محتوا و همچنین دسته بندی، زیباتر و خواناتر و همچنین از نظر فنی(سئو و این حرفا!) بهترتره! برای این روش در وردپرس از بخش paramlink استفاده می کنیم. که در وردپرس فارسی به نام پیوند یکتا شناخته میشه. حالا این همه گفتم تا بگم که اگه شما بخواین رو سیستم خودتون(Local) وردپرس نصب کنین، به احتمال زیاد در صورت استفاده از پیوندیکتا به جز صفحه اول سایتتون نمی تونین صفحه دیگه ای رو ببینین. (اگه مشکلی نداشتین که بیخیال) البته گاهی این مشکل رو سرور اینترنتی تون هم پیش میاد که روش حلش همینه.

راستی قبل از همه بگم که واسه فعال کردن پیوند یکتا وقتی وارد قسمت مدیریت سایتتون شدید، از بخش تنظیمات، پیوند یکتا رو بزنید و گزینه ی مورد نظرتون رو انتخاب کنید. اگه کار نکرد مراحل زیر رو دنبال کنید

  • فعال کردن ماژول مود ری رایت (Apache mod_rewrite)mod_rewrite

اول از همه شما آپاچه باید اجازه داشته باشه که آدرس رو تغییر بدن وبرای این کار نیاز به ماژول(mod_rewrite) داره که برای فعال کردنش باید فایل (httpd.conf) رو ویرایش کنید که بسته به نرم افزار مورد استفاده برای اجرای پی‌اچ‌پی تو جاهای مختلفی قرار داره! حالا حتما می پرسید این فایل رو از کجا گیر بیارم! خب این فایل رو می تونین تو

C:\Program Files\Apache Software Foundation\Apache\conf\httpd.conf

پیدا کنین. اگه مثله من از wamp استفاده می کنین، بی خود دنبالش نگردین و توی آدرس زیر پیداش کنین. توجه کنین که پوشه مربوط به آپاچه، بسته به نسخه نصب شده ی ومپ متفاوته

C:\wamp\bin\apache\Apache2.2.21\conf

حالا فایل (httpd.conf) رو تو برنامه ی ویرایش متنی مثله نوت‌پد(Notepad) باز کرده و با یه جستجوی ساده! دنبال عبارت پایین بگردین.

#LoadModule rewrite_module modules/mod_rewrite.so

خب یه توضیح کوچیکه اضافی بدم: برای فعال کردن ماژول ها باید # رو از اول اون خط بردارین تا برنامه بتونه اون خط رو بخونه.

پس وقتی عبارت بالایی رو پیدا کردین، شارپ ساین(#) اولش رو بردارین تا تبدیل به عبارت زیر بشه

  LoadModule rewrite_module modules/mod_rewrite.so

حالا فایل (httpd.conf) رو ذخیره کنید. همون سیوش کنین!

اگه بازم مشکلی داشتین، عبارت زیر رو هم تو همون فایل پیدا کرده

AllowOverride None

و اون رو به عبارت پایینی تبدیل کنید

AllowOverride all

و در انتها دوباره فایل (httpd.conf) رو ذخیره کنید.

پس از انجام این تغییرات، سرویس آپاچه رو ریستارت کنین تا همه چی روبراه بشه و از این شیوه ی آدرس دهی لذت ببرید! اینم بگم واسه ریستارت کردن رو آیکن ومپ(WAMPSERVER) کلیک چپ کرده و (Restart All Services) رو بزنید و چند ثانیه صبر کنین تا دوباره رنگش سبز بشه. دیگه تموم شد!

منبع

  1. پورعبدالهی پاسخ دادن

    سلام
    کتگوریا به این شکل باشه index.php?categoryID=25
    یعنی اخر کد تغییر پیدا کنه index.php?categoryID=
    و محصولات هم این شکلی بشه index.php?productId=10
    ؟؟
    با تشکر

    • جواد عوض زاده

      به صورت پیش‌فرض برای دسته‌بندی‌ها شما تنها میتونید قبل از اسم دسته از عبارت خاص خودتون استفاده کنید. پس اون ساختار مدنظر شما به صورت پیش فرض قابل دستیابی نیست.
      در مورد نوشته‌ها یا محصولات این ساختار شما از متد گت استفاده میکنه و عبارت index.php هم به صورت پیش فرض به ابتدای آدرس اضافه شده! برای این کار میتونید از مقدار زیر در بخش پیوندهای یکتا استفاده کنید.
      /index.php?post=%post_id%

      ولی به خاطر داشته باشید این سبک آدرس دهی به هیچ وجه مناسب نیست و علاوه بر موتورهای جستجو که دیگه سایت شما رو نمیتونن صحیح ایندکس کنن به طور کل تغییر صفحه با کمک متد گت برای صفحاتی که کاملا از مجزا از هم هستند روش درستی نیست.
      هم‌چنین فکر نمیکنم وردپرس بتونه به درستی این ساختار رو هندل کنه.
      به طور کل همه دنبال کوتاه‌تر کردن آدرس هستن و افزودن index.php داره نه کاراکتر رو بیهوده به آدرس اضافه میکنه!

  2. پریسا پاسخ دادن

    دستتون درد نکنه،دو روز مخم قفل کرده بود برا همین مشکل.
    و شما خیلی خوب توضیح دادین بازم ممنون

  3. ا پاسخ دادن

    سلام آقای عوض زاده.
    دو سه روزه که یکی سایتم رو هک می کنه.

    صفحه اصلی بدون مشکل بالا میاد ولی تمام صفحات دیگه رو ۴۰۴ می زنه

    امروز دوباره سایت رو دچار اشکال کرد

    تست کردم دیدم اگه پیوند یکتای وردپرس رو روی حالت پیش فرض بذارم همه صفحات بدون مشکل بالا میاد. ولی اگه بذارم رو حالت سفارشی همه صفحات رو ۴۰۴ می زنه.

    به نظرتون چکار کرده که این اشکال پیش اومده؟
    فرقی نمی کنه سفارشیش چی باشه مثلا /product باشه یا /salam . همین که رو حالت سفارشی باشه همه صفحات ۴۰۴ می شه.

    • جواد عوض زاده

      سلام
      از کجا میدونید هک شده!؟
      با پشتیبانی سرورتون تماس بگیرید و مساله رو باهاشون درمیون بزارید. احتمال داره تغییری در تنظیمات رخ داده باشه

  4. فرونت پاسخ دادن

    دو سه روزه کارش شده.
    هی این اشکالو ایجاد می کنه هی من فول بکاپ روزهای پیش رو بازگردانی می کنم.
    دفعه اول مستقیما htaccess رو دستکاری کرده بود و کل سایت رو به http:// ریدایرکت کرده بود. این کاری نداشت پیدا کردن و حذف کردنش.
    ولی اشکال دوم رو هر کاری کردم و به هر کی گفتم نفهمید از چیه

    سرورم میگه در حد اسکریپت به ما مربوط نیست. میگم ممکنه mode_rewrite رو غیرفعال کرده باشه؟ چون این اشکال تو لوکال وقتی پیش میاد که این ماژول غیرفعال باشه، میگن کدهای فلان رو تو htaccess بذار. میگم این کدا رو که خود وردپرس پیش فرض تو htaccess قرار داده…

    خلاصه موندم شدید…

    • جواد عوض زاده

      اگه اینطور که شما میگید که هر چند روز یکبار داره این عمل رو تکرار میکنه پس دسترسی به سرور با برگردوندن بکاپ فایده‌ای نداشته و برای اولین اقدام باید دسترسیش رو به سرورتون قطع کنید.
      تغییر همه کلمه‌های عبور و بررسی کدهای مخرب برای اجرا و ایجاد تغییر، اولین اقدامیه که باید با حوصله و دقت انجام بدید.
      قبل از اینکه دسترسیش رو قطع کنید هر اقدامی بی‌فایده بوده و موقتی خواهد بود. لاگ‌های آپاچی و سرور رو برای کنترل ورودها چک کنید.
      یوزر شما امکان تغییر مودهای پی‌اچ‌پی رو تنها با قراردادن فایل php.ini در برخی شرایط خاص و اون‌هم در صورت وجود ویژگی اون خواهد داشت. اگر فایل php.ini ای رو دیدید بررسیش کنید.

    • جواد عوض زاده

      در ضمن بعد از انجام تنظیمات از بخش پیوندهای یکتا یکبار دکمه سیو رو بزنید تا خودش فایل رو بسازه و جایگزین کنه و اون رو دستی جایگزین نکنید.

  5. سردار پاسخ دادن

    سلام:
    اساتید محترم من نرم افزار xampp روی سیستمم نصب کردم حالا مشکل ارور میده تنظیمات های لازم را انجام دادم بازم حل نشد از راهنماییتون بسیار سپاسگزارم اینم مشخصاتش {Object not found!
    The requested URL was not found on this server. If you entered the URL manually please check your spelling and try again
    If you think this is a server error, please contact the webmaster.
    Error 404
    localhost
    Apache/2.4.17 (Win32) OpenSSL/1.0.2d PHP/5.6.21 }
    خیلی خیلی ممنون میشم اگه جوابم بدی با نهایت تشکر: موفق باشین

    • جواد عوض زاده

      سلام
      مطابق این بررسی، آدرس شما وجود نداره و به همین دلیل خطا رو میبینید.
      دقیقا چه آدرسی رو وارد می‌کنید که این خطا رو مشاهده کردین؟

  6. سردار پاسخ دادن

    با سلام:
    اقای استاد جواد عزیز قبل از همه چیز بسیار بسیار ازت سپاسگزارم که زود جوابم دادی
    در ضمن xampp روی سیستمم نصب کرده ام درهمون پوشه (htdocs) وردپرس اکسترا کرده ام برای انجام ادامه کار بعدی وقتی تو مرورگر ادرس (locahost/wp-admin) وارد میکنم با این مشخصاتی که برات ارسال کردم برخورد میکنم به نظر جنابعالی اشکال از کجا باشه از یارییتون بی نهایت سپاسگزارم

    • جواد عوض زاده

      یه پوشه به اسم مثلا wp‌ تو htdocs بسازید و فایل‌های مورد نظرتون رو توی اون بزارید.
      برای تست عملکرد کلی زمپ هم میتونید قبل از کپی کردن محتویات وردپرس، یه فایل به نام index.html تو اون پوشه بسازید و چک کنید که آدرس خونده میشه یا نه.
      برای نصب وردپرس در اولین بار هم نیازی به آدرس wp-admin نیست و همین که آدرس اصلی سایت رو بزنید شما رو به بخش نصب منتقل میکنه

  7. سردار پاسخ دادن

    سلام:
    استاد عزیز من قسمتی از مراحل کار پیش میرم تا پایگاه داده مثل (database) میسازم قسمت (wp-config.php) را هم تغییر میدم قسمت ((DB_NAME)، نام کاربری (DB_USERNAME) و پسورد (DB_PASSWORD) انجام میدم بعد از ذخیره کردن که به مرورگر مراجعه میکنم برای ادامه کار به قسمت عنوان سایت شناسه رمز و غیره قبل از اینکه به کزینه وارد بشم همون مشخصات میاره در ضمن اون دستور العملی که در ارسال اخری هم گفتی انجام دادم بازم اون اونو میاره فقط یه سرور پورت ۸۰ بهش اضافه میشسه انی که برات ارسال کرده ام مثل خودشه {Index of /wp
    [ICO] Name Last modified Size Description
    [PARENTDIR] Parent Directory –
    [TXT] index.html.txt ۲۰۱۶-۰۷-۰۴ ۰۰:۵۹ ۰
    Apache/2.4.17 (Win32) OpenSSL/1.0.2d PHP/5.6.20 Server at localhost Port 80}
    مچکرم

  8. سردار پاسخ دادن

    با سلام:
    استاد جواد اون مشکل قبلی حل کردم الان یه مشکل دیگه پیش اومده به جای اینکه به بخش بعدی منتقل بشم این مشخصات میاره {با عرض پوزش، جهت شروع کار به پرونده‌ی wp-config-sample.php نیاز است. لطفاً دوباره این پرونده را بارگذاری نمایید.} هر کاری با هاش کردم بازم درست نشد از یاری جنابعالی بسیار سپاسگزارم

    • جواد عوض زاده

      سلام
      من همیشه از اون فایل سمپل یه کپی میگرفتم و تنظیمات رو روش اعمال میکردم. نمیدوستم به اون هم نیاز هست!
      میتونید فایل سمپل رو بزارید سرجاش و دوباره تست کنید

  9. اکبر پاسخ دادن

    با سلام
    جناب عوض زاده،بنده یک مشکلی دارم که واقعاً کلافه ام کرده:در وردپرس مطلبی رو که قبلاً اضافه کردم رو میخوام پیوندیکتا رو عوض کنم،لینک قبلی به اینصورت بوده: http://mydomain.ir/floor-grid حالا که میخوام پیوند رو به صورت: http://mydomain.ir/کفسابی ویرایش کنم،لینک بصورت http://mydomain.ir/کفسابی-۲-۲ نمایش داه میشود.
    خیلی ممنون میشم اگرکه راهنمایی بفرمائید.

  10. حسین پاسخ دادن

    سلام
    ببخشید من به مشکلی برخورد کردم که ممنون میشم راهنماییم کنین.

    هاستمو عوض کردم و تصاویرم نمایش داده نمیشن
    پشتیبان هاست گفته باید مسیر اسکریپت و دیتابیس رو عوض کنی طبق آدرس پایین:
    http://paste.ubuntu.com/23368036/
    ممنون میشم راهنمایی کنین.

  11. این نوشته در مطلبی با عنوان تنظیمات URL و لینک ها در وردپرس | هاست ارزان منتشر شده است

  12. این نوشته در مطلبی با عنوان مشکل در باز شدن دسته ها CATEGORY وردپرس | یک میزبان منتشر شده است

  13. shanderman پاسخ دادن

    سلام
    یه مشکلی در وردپرس دارم،ممنون میشم راهنمایی کنید:
    بیشتر محصولات من با دو آدرس متفاوت به شرح زیر قابلیت دسترسی دارند،و بیشتر آنها هم در گوگل ایندکس شده اند،چگونه یکی از آدرس ها را باید حذف کنم؟(محصولی به نام شکم بند هات شیپرز،محصولات دیگر هم به همین دو روش آدرس دهی زیر در دسترس هستند)

    http://shandermanshop.com/?product=hot-shapers

    http://shandermanshop.com/product/hot-shapers/

  14. یوسف پاسخ دادن

    /product-category/%d8%b7%d8%b1%d8%ad-%d9%84%d8%a7%db%8c%d9%87-%d8%a8%d8%a7%d8%b2/%d8%a8%d9%86%d8%b1-%d9%88-%d9%84%d8%a7%d8%b1%d8%ac-%d9%81%d8%b1%d9%85%d8%aa/%d9%85%d9%86%d8%a7%d8%b3%d8%a8%d8%aa-%d9%87%d8%a7%db%8c-%d9%85%d8%b0%d9%87%d8%a8%db%8c/
    چه طوری می تونم تبدیل کنم به
    btarh.ir/product-category/مناسبت-های-مذهبی/
    ممنون از شما

    • جواد عوض زاده

      سلام
      بصورت خودکار متون فارسی تبدیل به کارکترهای انگلیسی میشن و این تبدیل توسط مرورگرها رخ میده
      در حقیقت این دو یکی هستند

  15. امير پاسخ دادن

    با سلام
    در قسمت پیوند یکتا وقتی میخوام آدرس URL رو عوض کنم (.) به (-) تبدیل میشه چرا؟