برای حذف index.php از آدرس url ۲ کار باید انجام دهید .
کار اول: تنظیمات مربوط به سرور
در سرور iis باید در web.config کد زیر را قرار دهید
<?xml version="1.0″ encoding="UTF-8″?> <configuration> <system.webServer> <directoryBrowse enabled="false" /> <rewrite> <rules> <rule name="Hide Yii Index" stopProcessing="true"> <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" appendQueryString="true" /> </rule> </rules> </rewrite> </system.webServer> </configuration>
توجه داشته باشین که web.config باید در فولدر web قرار گیرد .
در basic در مسیر root/web
و در advance در مسیر : root/frontend/web یا root/backend/web
در سرورهای appache در htaccess.
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
کار دوم : فعال سازی urlmanager در main
که در advance در مسیر root/fronend/config/main.phpو یا root/backend/config/main.php
و در basic در مسیر root/config/web.php
کد زیر را از حالت کامنت خارج می کنیم
'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false, 'rules' => [ ], ],