رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
عدم نمایش صفحه 404
#1
سلام وقت همگی بخیر.
یک صفحه 404 ساختم داخل یه فولدر قرار دادم.ولی زمانیکه صفحه ای وجود ندارد به صفحه 404 نمیره.
کد htaccess هم به شکل زیر:
Options +FollowSymlinks
RewriteEngine on

RewriteCond %{SCRIPT_FILENAME} !-d  
RewriteCond %{SCRIPT_FILENAME} !-f  
RewriteRule ^(.*)$ index.php?param=$1 [QSA]

ErrorDocument 400 http://www.%{HTTP_HOST}/400
ErrorDocument 401 http://www.%{HTTP_HOST}/400
ErrorDocument 403 http://www.%{HTTP_HOST}/403
ErrorDocument 404 http://www.%{HTTP_HOST}/404
ErrorDocument 500 http://www.%{HTTP_HOST}/500

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

ممنون میشم راهنمایی کنید مشکلم حل بشه
پاسخ
تشکر شده توسط:
#2
پسوند صفحاتتون چیه؟ html. ؟ باید مسیر کامل رو بنویسید.
پاسخ
تشکر شده توسط:
#3
نخیر پسوند فایلها .php هست و داخل یک فولدر به نام errors هست.البته صفخه رو به صورت دستی که میزنم http://www.domain.ir/404 باز میشه ولی از داخل htaccess اجرا نمیشه
پاسخ
تشکر شده توسط:
#4
فکر میکنم مشکل از آدرس دهی باشه. لاگ خطاهای آپاچی رو بررسی کنید.
پاسخ
تشکر شده توسط:
#5
آدرس دهی رو تغییر دادم ولی هیچ تغییری نکرد.لاگ آپاچی رو کجای هاست میتونم ببینم؟هاستم دایرکت ادمین؟
و یه سوال دیگه ممکن چیزی روی هاست غیر فعال باشه که این دستور و اجرا نمیکنه؟البته فقط همین دستور htaccess رو اجرا نمیکنه.

با تشکر
پاسخ
تشکر شده توسط:
#6
(14-05-1394، 01:00 ب.ظ)mehr1362 نوشته: سلام وقت همگی بخیر.
یک صفحه 404 ساختم داخل یه فولدر قرار دادم.ولی زمانیکه صفحه ای وجود ندارد به صفحه 404 نمیره.
کد htaccess هم به شکل زیر:
Options +FollowSymlinks
RewriteEngine on

RewriteCond %{SCRIPT_FILENAME} !-d  
RewriteCond %{SCRIPT_FILENAME} !-f  
RewriteRule ^(.*)$ index.php?param=$1 [QSA]

ErrorDocument 400 http://www.%{HTTP_HOST}/400
ErrorDocument 401 http://www.%{HTTP_HOST}/400
ErrorDocument 403 http://www.%{HTTP_HOST}/403
ErrorDocument 404 http://www.%{HTTP_HOST}/404
ErrorDocument 500 http://www.%{HTTP_HOST}/500

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

ممنون میشم راهنمایی کنید مشکلم حل بشه

سلام از کد زیر استفاده کن و نتیجرو اعلام کن.


RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [L,QSA]

ErrorDocument 404 http://uraddress/404


پاسخ
تشکر شده توسط:
#7
سلام.
ممنون از راهنمایی ولی پسوند همه فایلهام php هست متاسفانه این کد رو که میگذارم کلا سایت بالا نمیاد.
یه موردی که هست اینه که کلا not found رو نادیده میگیره و میره فایل ایندکس پروژه رو اجرا میکند.
پاسخ
تشکر شده توسط:
#8
توی تنظیمات Apache چک کنید AllowOverride روی All باشه.
پاسخ
تشکر شده توسط:
#9
(19-05-1394، 12:37 ق.ظ)ADMIN نوشته: توی تنظیمات Apache چک کنید AllowOverride روی All باشه.

بله روی all بود.
زمانیکه http_response_code() داخل ایندکس قرار میدم 200 بر میگردونه.
پاسخ
تشکر شده توسط:
#10
کدهایی که شما نوشتید باعث میشه اگه فایل یا پوشه ای پیدا نشد اون درخواست رو به صفحه index.php بفرسته و با این شرایط کدهای بعدی که مربوط به خطای 404 هست هیچ موقع اجرا نمیشن. با این شرایط شما میتونید خطای 404 رو تو فایل index.php کنترل کنید.
...
پاسخ
تشکر شده توسط: mehr1362
#11
(19-05-1394، 10:58 ق.ظ)MRPM نوشته: کدهایی که شما نوشتید باعث میشه اگه فایل یا پوشه ای پیدا نشد اون درخواست رو به صفحه index.php بفرسته و با این شرایط کدهای بعدی که مربوط به خطای 404 هست هیچ موقع اجرا نمیشن. با این شرایط شما میتونید خطای 404 رو تو فایل index.php کنترل کنید.

ممنون از راهنماییتون.
همین کارو کردم مشکل حل شد
پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: 1 مهمان