PDA

View Full Version : مشکل در لینک ها url manager



under22
چهارشنبه 03 دی 1393, 08:51 صبح
آیدی های محصولات من به صورت
e7c4f57c-89d9-11e4-bb62-00ffbb12138c
هست بخاطر همین وقتی لینک اون رو میسازم به مشکل برمیخورم و ارور میده که همچین اکشنی وجود نداره .
برای مثال
<a href="<?php echo Yii::app|()->createUrl('site/showp',array('id'=>$key->id)) ?>"></a>
این لینک کامل رو میسازی به این شکل

http://localhost/Data/site/showp/e7c4f57c-89d9-11e4-bb62-00ffbb12138c
ولی وقتی روی لینک کلیک میکنید ارور 400 میده که درخواست معتبر نیست . اما اگه لینک رو به صورت

http://localhost/Data/site/showp?id=e7c4f57c-89d9-11e4-bb62-00ffbb12138c[/PHP
به درستی کار میکنه . خیلی تلاش کردم درستش کنم مثلا id رو داخل urlmanager از نوع کلمه گذاشتم و ... اما درست نشد .
کد url manager
[PHP]
'urlManager' => array(
'urlFormat' => 'path',
'showScriptName' => FALSE,
'rules' => array(
'<controller:\w+>/<id:\d+>' => '<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
),
),

کد htcaccess


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

باید چه تغییراتی بدم که لینک هام به درستی کار کنن؟؟

MMSHFE
چهارشنبه 03 دی 1393, 09:11 صبح
رول دوم رو تغییر بدین:

'<controller:\w+>/<action:\w+>/<id:\w+>' => '<controller>/<action>'

under22
چهارشنبه 03 دی 1393, 09:25 صبح
رول دوم رو تغییر بدین:

'<controller:\w+>/<action:\w+>/<id:\w+>' => '<controller>/<action>'
درست نشد .
این دفعه این خطا رو میده
سیستم توانایی یافتن عمل "9f98b845-89d9-11e4-bb62-00ffbb12138c" را ندارد.

MMSHFE
چهارشنبه 03 دی 1393, 09:41 صبح
فقط دومی رو گفتم اصلاح کنید. بهرحال اگه کار نمیکنه، رول رو به همون وضع قبل برگردونید و یک رول جدید قبل از این رولها اضافه کنید:

'site/showp/<id:\w+>'=>'site/showp',

under22
چهارشنبه 03 دی 1393, 09:49 صبح
فقط دومی رو گفتم اصلاح کنید. بهرحال اگه کار نمیکنه، رول رو به همون وضع قبل برگردونید و یک رول جدید قبل از این رولها اضافه کنید:

'site/showp/<id:\w+>'=>'site/showp',
بله دومی رو اصلاح کردم .
این رول رو اول همه رول ها اضافه کردم و رول دومی رو به حالت قبل برگردوندم ولی بازم ارور میده که درخواست نامعتبر است .
فکر میکنم بخاطر - هست

MMSHFE
چهارشنبه 03 دی 1393, 09:51 صبح
این دیگه باید کار کنه:

'site/showp/<id:[\w\-]+>'=>'site/showp',

under22
چهارشنبه 03 دی 1393, 09:59 صبح
این دیگه باید کار کنه:

'site/showp/<id:[\w\-]+>'=>'site/showp',
ممنون کار کرد . من به این صورت تغییرش دادم .


'<controller:\w+>/<action:\w+>/<id:[\w\-]+>'=>'<controller>/<action>',