YII URL, как создать новый URL
У меня есть один сайт, на котором я хочу URL, как SiteURL/about.html.
Я изменил код в config/main.php
но когда я захожу на сайт, сессия истекает, когда я перехожу на любую другую страницу.
Если прокомментировать этот код 'showScriptName'=>false
в config/main.php
файл, затем он работает нормально, и теперь мой сеанс входа в систему сохраняется, и нас не истек, однако теперь мой URL становится таким SiteURL/index.php/about.html
Но я хочу URL как about.html.
У меня также есть еще один контроллер для опции игры, URL которого выглядит следующим образом: http://www.demo.com/index.php/Games/info/9.html но я хочу, чтобы URL, например, SiteURL/black-hook.html, был в этом " черный крючок "- так называется игра.
'urlManager'=>array(
'urlFormat'=>'path',
'showScriptName'=>FALSE,
'rules'=>array(
'<action>'=>'site/<action>',
'<view>'=>'array('site/page')',
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>'
),
),
* SiteURL = http://www.demo.com/
1 ответ
Во-первых, чтобы добавить.html к своим страницам, вам нужно использовать опцию fake url Суффикс в urlManager.
Это можно сделать, добавив 'urlSuffix' =>'.html'
на ваш urlManager
Конфиг, как это
'urlManager'=>array(
'urlFormat'=>'path',
'showScriptName'=>false,
'urlSuffix'=>'.html',
'rules'=>array(
'<action>'=>'site/<action>',
'<view>'=>'site/page',
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>'
),
),
Во-вторых, для сокрытия index.php (называемого сценарием ввода) в вашем URL-адресе, помимо изменения конфигурации, вам необходимо изменить конфигурацию на вашем сервере apache/nginx.
Создайте файл /.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
Затем проверьте, если AllowOveride All
есть ли для вашего каталога приложения в вашем файле конфигурации apache Вы можете также добавить вышеупомянутую конфигурацию непосредственно в ваш файл конфигурации apache, используя элемент Directory без использования.htaccess. Примечание. Чтобы это работало, вам нужно включить механизм перезаписи в конфигурации Apache. Это можно сделать с помощью следующего набора команд.
a2enmod rewrite
Наконец перезапустите apache2 после
/etc/init.d/apache2 restart
или же
service apache2 restart