کسانی که از نسخه ۲ این فریمورک استفاده می کنند به مشکل حذف پوشه backend و frontend بر میخوارند . بنده در این قصد دارم با استفاده از کد web.config آدرس های زیبا برای پروژمون ایجاد کنیم .
در پوشه اصلی پروژه یعنی بیرون backend و frontend یک فایل web.configایجاد کنید و کد زیر را در آن قرار دهید .
<configuration> <system.webServer> <directoryBrowse enabled="false" /> <rewrite> <rules> <!–# prevent directory listings–> <rule name="backend_remove" stopProcessing="true"> <match url="^admin(/.+)?$" ignoreCase="false" /> <action type="Rewrite" url="backend/web/{R:1}" /> </rule> <rule name="frontend_remove"> <match url="^(.+)?$" ignoreCase="false" /> <action type="Rewrite" url="frontend/web/{R:1}" /> </rule> </rules> </rewrite> </system.webServer> </configuration>
کد بالا
localhost/frontend/web/index.php را به localhost/t/ تبدیل می کند .
و
localhost/backend/web/index.php را به localhost/admin تبدیل می کند.
توجه داشته باشید اگر به جای کلمه admin خواستید کلمه دیگیری باشد به جای admin در web.configاز کلمه دیگری استفاده کنید.
برای حذف index.php از هردو frontend و backend فایل web.config در هر دو فولد ایجاد کنید و کد زیر را در آن قرار دهید (در داخل فولدر web).
xml version="1.0″ encoding="UTF-8″?> <configuration> <system.webServer> <directoryBrowse enabled="false" /> <rewrite> <rules> <rule name="frontend_remove_index"> <match url="." ignoreCase="false" /> <conditions> <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" /> </conditions> <action type="Rewrite" url="index.php" /> </rule> </rules> </rewrite> </system.webServer> </configuration>
و حالا برای اینکه فریمورک با آدرس جدید کار کند ابتدا به frontend/config/main.php بروید آدرس پروژه اصلی خود را بدهید.
در بیرون از components کد زیر را قرار دهید.
'homeUrl' => '/',
این کد را هم داخل components قرار دهید.
'request' => [ 'baseUrl' => '/', ], 'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false, 'rules' => [ '<controller:\w+>/<id:\d+>' => '/view', '<controller:\w+>/<action:\w+>/<id:\d+>' => '/', '<controller:\w+>/<action:\w+>' => '/', ], ],
و حال به فایل backend/config/main.php بروید و بیرون از components کد زیر را قرار دهید.
'homeUrl' => '/admin',
و این را هم داخل components قرار دهید .
'request' => [ 'baseUrl' => '/admin', ], 'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false, 'rules' => [ '<controller:\w+>/<id:\d+>' => '/view', '<controller:\w+>/<action:\w+>/<id:\d+>' => '/', '<controller:\w+>/<action:\w+>' => '/', ], ],