• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل dot (.) در URL و خطای 404
#1
سلام،
فرض کنید برای جستجو این آدرسُ داریم:
کد:
www.site.com/article/search/mr.ahmadi
که در واقع mr.ahmadi همون کلید واژه ای هست که باید داخل دیتابیس جستجو بشه
حالا به خاطر اینکه توی کلید واژه از dot یا همون نقطه خودمون استفاده شده بلافاصله بعد از submit فرم صفحه خطای 404 رو میده.
انگار mr رو نام فایل و ahmadi رو پسوندش در نظر میگیره!
کلی با htaccess کشتی گرفتم اما نتیجه ای نداشت.
لطفا راهنمایی کنید، ممنون.
هر چیزی که در جستن آنی آنی...
غایب
  پاسخ
تشکر شده توسط :
#2
فقط htaccess نیست
خودت داری routing می کنی یا framework هست؟

داری آدرس رو explode می کنی؟
هر که با مرغ هوا دوست شود - خوابش آرامترین خواب جهان خواهد بود.
  پاسخ
تشکر شده توسط : undefined
#3
نقل قول:داری آدرس رو explode می کنی؟
اره، قسمتی از htaccess:
کد:
RewriteRule ^([^\.]+)/?$ index.php?action=$1 [L,QSA]
بعدشم روتر فریم ورک routing میکنه.
هر چیزی که در جستن آنی آنی...
غایب
  پاسخ
تشکر شده توسط :
#4
کد:
RewriteRule ^([^/]+)/?$ index.php?action=$1 [L,QSA]
به یـزدان که گر ما خرد داشتیم
کجـا این سر انجـام بد داشتیم؟
  پاسخ
تشکر شده توسط : undefined
#5
فریم ورک چی هست؟

شاید این مناسب باشه:

کد:
RewriteRule  ^(.*)$ index.php?param=$1 [QSA,L]
هر که با مرغ هوا دوست شود - خوابش آرامترین خواب جهان خواهد بود.
  پاسخ
تشکر شده توسط : undefined
#6
نقل قول:
کد:
RewriteRule ^([^/]+)/?$ index.php?action=$1 [L,QSA]
کد:
RewriteRule  ^(.*)$ index.php?param=$1 [QSA,L]

ممنون از دوستان، اما فایده نداره، انواع regular ها رو روش تست زدم، اصلا دست بش میزنی پروژه میترکه لامصب Undecided

نقل قول:فقط htaccess نیست
مطمئن شدم مشکل از همین جاست و بازم دارم روش کار میکنم...
چون وقتی آدرسُ به صورت زیر درخواست میکنم:
کد:
www.site.com/index.php?action=article/search/mr.ahmadi
مشکلی نداره و همه چی به خوبی کار میکنه.

نقل قول:فریم ورک چی هست؟
شخصیه، من دارم روش ادیت میزنم.
هر چیزی که در جستن آنی آنی...
غایب
  پاسخ
تشکر شده توسط :
#7
اصلن آدم از اول بنویسه ولی رو کدهای دیگران کار نکنه. Confused

بی زحمت کل فایل .htaccess رو بذارید.
به یـزدان که گر ما خرد داشتیم
کجـا این سر انجـام بد داشتیم؟
  پاسخ
تشکر شده توسط : undefined hamid_80386
#8
آخه بقیه کد های htaccess ربطی نداره به این موضوع

کد:
<IfModule mod_rewrite.c>
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^([^\.]+)/?$ index.php?action=$1 [L,QSA]

</IfModule>

<FilesMatch "\.(ttf|otf|eot|woff)$">
  <IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
  </IfModule>
</FilesMatch>
هر چیزی که در جستن آنی آنی...
غایب
  پاسخ
تشکر شده توسط : sara147
#9
Huh
توی صفحه ی 404 آدرس رفرال رو چاپ کنید. شاید اشتباه روت میشه.
به یـزدان که گر ما خرد داشتیم
کجـا این سر انجـام بد داشتیم؟
  پاسخ
تشکر شده توسط : undefined hamid_80386
#10
کلاً regex رو اعصابه، اگر حل شد بعداً اینجا هم بزار موضوع رو احسان جان
همیشه یه نکته ریز...Sleepy
هر که با مرغ هوا دوست شود - خوابش آرامترین خواب جهان خواهد بود.
  پاسخ
تشکر شده توسط :


پرش به انجمن:


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