मैं वाईआई 2 के साथ काम कर रहा हूं और मैं सभी गैर-अक्षर और गैर-संख्या वाले अक्षरों को स्लेश में बदलने के लिए रूटिंग के साथ urlManager का उपयोग करना चाहता हूं। मैंने पहले से ही पूछा गया है कि बहुत से सवाल पूछा गया है (#1, #2, #3, #4) लेकिन कोई भी इसे हल नहीं करता क्योंकि वे या तो थोड़ा समान दिखाते हैं, लेकिन जो भी मैं चाहता हूं या मेरे लिए काम नहीं कर रहा हूं।वाईआई 2 सुंदर यूआरएल: स्लैश के साथ सब कुछ स्वचालित रूप से कनवर्ट करें (सभी पैरामीटर समेत)
//...
'urlManager' => [
'class' => 'yii\web\UrlManager',
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => array(
'<controller:\w+>/<id:\d+>' => '<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
),
],
.htaccess (यह भी सरल):
मैं सरल urlManager नियम है
:localhost/frontend/web/index.php?r=site%2Ftest-router&ident=10&token=ADB&module=P120
RewriteEngine on
# If a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Otherwise forward it to index.php
RewriteRule . index.php
मेरे मामले में, मेरा बदसूरत URL ऐसा (SiteController -> public function actionTestRouter()
) है
नियमों के साथ मैंने ऊपर लिखा है, मुझे बेहतर परिणाम मिलता है (क्योंकि यह index.php?r=
और रूपांतरणों को हटा देता है क्या मैं प्राप्त करना चाहते हैं
localhost/frontend/web/site/test-router?ident=10&token=ADB&module=P120
: %2F
/
करने के लिए) के नियमों के साथ
localhost/frontend/web/site/test-router/ident/10/token/ADB/module/P120
मेरे कई attemps थे:
'test-route/<ident:\d+>/<token:\w+>/<module:\w+>' => 'test-route' // 1
'<controller:\w+>/<action:\w+>/<ident:\d+>/<token:\w+>/<module:\w+>' => '<controller>/<action>' // 2
'<controller:\w+>/<action:\w+>/<slug:[a-zA-Z0-9_-]+>/' => '<controller>/<action>/<slug>' // 3 (not even sure what slug does here
यह भी सुपर अच्छा होगा यदि नियम लागू होते हैं होगा किसी भी पैरामीटर और मूल्यों के लिए, उनके नाम और मूल्यों के बावजूद।
उत्तर के लिए धन्यवाद। लेकिन मुझे यह त्रुटि मिली: 'preg_match(): संकलन विफल: आखिरी या दूसरे-अंतिम विकल्पों को आजमाते समय वर्ण वर्ग में ऑफसेट 66 में ऑर्डर से बाहर है। :/ –
आह से कम से कम 5.2 मिनट भी बच जाना चाहिए। उत्तर संपादित किया गया। – user1852788
मुझे अभी भी यह सही नहीं लगता है।:/मैंने आपके संपादन की कोशिश की और 'लोकलहोस्ट/फ्रंटएंड/वेब/साइट/टेस्ट-राउटर/पहचान/10/टोकन/एडीबी/मॉड्यूल/पी 120' (सीधे यूआरएल में) दर्ज किया लेकिन मुझे '404' त्रुटि मिली। –