مشکل جوملا با SEF URLs

نسخه‌ی ۱.۵ جوملا قابلیت این را دارد که آدرسها را به صورت مناسب برای موتورهای جستجو (Search Engine Friendly) درآورد (مثلا http://persianreader.com/persian-ocr-silver-edition). برای این کار باید با استفاده از پنل مدیریت، به منوی Site و سپس Global Configuration رفته و در بخش SEO Settings گرینه‌ی Search Engine Friendly URLs را به Yes علامت بزنیم. به این ترتیب آدرس مطالب سایت به صورت کاملا خوانا درخواهند آمد. حتی می توان با استفاده از گزینه‌ی  Add suffix to URLs  به انتهای آدرسها پسوند htm را هم افزود تا آدرسها به صورت استاتیک به نظر آیند.
و اما مشکل:
غالبا با انجام این تنظیمات، سایت به هم ریخته و لینکها یا یافت نمی شوند و یا اگر هم یافت شوند شکل ظاهری سایت به هم می ریزد. برای رفع این مشکل به سایتهای متعددی سر زدم ولی اطلاعات چندانی نصیبم نشد و بعد از چند ساعت سعی و خطا روشی برای رهایی از این مشکل یافتم که شاید به درد شما هم که سایت مبتنی بر joomla دارید بخورد:

۱- اولین کار این است که اگر وب سرور شما آپاچی است فایل htaccess.txt را در مسیر نصب جوملا به .htaccess تغییر دهید(پسوند .txt را حذف کرده و یک نقطه به ابتدای فایل بیفزایید!)
۲- گزینه  Use Apache mod_rewrite را در همان بخش seo settings فعال کنید. اگر مشکل برطرف شد که خوش به حالتون اگر نه مرحله ۳ را انجام دهید.
۳- محتویات فایل .htaccess را به صورت زیر تغییر داده و ذخیره کنید.

##

# @version $Id: htaccess.txt 10492 2008-07-02 0628Z ircmaxell $

# @package Joomla

# @copyright Copyright (C) 2005 – 2008 Open Source Matters. All rights reserved.

# @license http://www.gnu.org/copyleft/gpl.html GNU/GPL

# Joomla! is Free Software

##

#php_value display_errors on

################################################## ###

# READ THIS COMPLETELY IF YOU CHOOSE TO USE THIS FILE

#

# The line just below this section: ‘Options +FollowSymLinks’ may cause problems

# with some server configurations. It is required for use of mod_rewrite, but
may already

# be set by your server administrator in a way that dissallows changing it in

# your .htaccess file. If using it causes your server to error out, comment it
out (add # to

# beginning of line), reload your site in your browser and test your sef url’s.
If they work,

# it has been set by your server administrator and you do not need it set here.

#

################################################## ###

## Can be commented out if causes errors, see notes above.

# Options +FollowSymLinks

#

# mod_rewrite in use

RewriteEngine On

########## Begin – Rewrite rules to block out some common exploits

## If you experience problems on your site block out the operations listed below

## This attempts to block the most common type of exploit `attempts` to Joomla!

#

# Block out any script trying to set a mosConfig value through the URL

RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]

# Block out any script trying to base64_encode crap to send via URL

RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]

# Block out any script that includes a <script> tag in URL

RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]

# Block out any script trying to set a PHP GLOBALS variable via URL

RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]

# Block out any script trying to modify a _REQUEST variable via URL

RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})

# Send all blocked request to homepage with 403 Forbidden error!

RewriteRule ^(.*)$ index.php [F,L]

#

########## End – Rewrite rules to block out some common exploits

# Uncomment following line if your webserver’s URL

# is not directly related to physical file paths.

# Update Your Joomla! Directory (just / for root)

RewriteBase /
########## Begin – Joomla! core SEF Section

#

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_URI} !^/index.php

RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$
[NC]

RewriteRule (.*) index.php

RewriteRule .* – [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]

#

########## End – Joomla! core SEF Section

نکته ای که باید متذکر شوم این است که کمپوننت های متعددی مثل sh404SEF یا Open SEF هم هست که روی جوملا نصب شده و همین کار را می کنند و شاید مشکلات فوق الذکر را هم نداشته باشند؛ ولی تا جایی که خود هسته جوملا کار آدم را راه می اندازد چه دلیلی است که از اینها استفاده کنیم. ضمن اینکه اگر روزی خواستید این ماژولها را حذف کنید فاتحه‌ی سایتتان و لینکهایی که دیگران به شما داده اند را باید بخوانید.

Share

9 نظر در “مشکل جوملا با SEF URLs

  1. سلام دوست عزیز
    من سایتم مشکل داره میتونین کمکم کنید ! من فایل httacss شما رو در سایتم گذاشتم ارور ۵۰۰ رو می دهد!
    الانم اگر کامپونت seo  رو در سایتم فعال کنم فقط صفحه اصلی سایتم بالا میاد؟
     
    میشه کمکم کنید؟

    • برای برخی سایتها، ممکن است فعالسازی سئو با این مشکل رو به رو شود، بهتر است از خیر آن بگذرید و فایل htaccess که همراه با نصب جوملا است را در سایت قرار دهید.

  2. سلام
    در سایت من System – SEF فعال است و من باز هم مشکل دارم البته بند ۳ را نفهمیدم اجرا کنم یا نکنم
    ولی بعد از فعال کردن Apache mod_rewrite لینکهام از بین می رود

  3. سلام
    اگر مطالب گفته شده در متن بالا را انجام داده اید و همچنان به صورتی که گفته اید سایت را می بینید، احتمالا پلاگین SEF غیر فعال است، برای فعال کردن به قسمت پلاگین ها بروید و System – SEF را بیابید و آن را فعال کنید.

  4. سلام
    نمایش وبلاگ در برخی از مرورگرها مثل اینترنت اکسپلورر ۶ درست نیست که انشاءالله در طرح ۵۰ ساله سوم درست خواهد شد. لیکن چرا از فایرفاکس استفاده نکنیم؟! هم بهتره هم سریعتر هم وبلاگ رو درست نشون می ده!

  5. سلام استاد
    چرا یه خورده کادر بندی سایت قاطی پاتیه!!!چرا اصلا کل سایت قاطیه؟یهو یه چیزی محو میشه همه نوشته ها رفته تو هم و ……………

پاسخ دادن به ؟؟؟؟؟؟؟؟؟؟؟؟ لغو پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *