@Lektor1

Как убрать /site/ из ссылки yii?

Привет. Думаю, это уже избитый вопрос. Но все имеющие в интернете решения мне не помогают.
У меня YII 1.1.16 . Страницы открываются только если указать /site/ . Допустим, есть страница http://домен.ру/site/contacts , а нужно чтобы было http://домен.ру/contacts. Помогите пожалуйста, как можно это реализовать?
Прописывать правила вручную для каждой страницы - не вариант. Т.к. есть возможность добавлять страницы из админки, да и страниц на сайте более 200.
.htaccess сейчас такой:
AddDefaultCharset utf-8
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 такой:
'urlManager'=>array(
			'urlFormat'=>'path',
      'showScriptName'=>false,
			'rules'=>array(
        '<controller:site>/<action:card>/<alias:\w+>'=>'<controller>/<action>', 
				'<controller:\w+>/<id:\d+>'=>'<controller>/view',
				'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
				'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
			),
		),
  • Вопрос задан
  • 1527 просмотров
Решения вопроса 2
slo_nik
@slo_nik Куратор тега Yii
Добрый день?
А Вы самостоятельно пробовали решить проблему? Как пытались решить?
В google, первая ссылка по запросу "Как убрать /site/ из ссылки yii"
тут

P.S.
Попробуйте начать со следующего:
'urlManager'=>array(
      'urlFormat'=>'path',
      'showScriptName'=>false,
      'rules'=>array(
               '' => 'site/index',
               '<_a:[\w\-]+>' => 'site/<_a>',
      ),
    ),
Ответ написан
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Если сайту 2 года, то смена урл ничего хорошего Вам не принесет. Урл менеджер у Вас совершенно стандартный. Но не зная структуры нельзя быть уверенным, что внесения в него правок не повлияет на что-то еще. У Вас кроме контроллера сайт другие контроллеры есть?
Оторвано от проекта это можно сделать так:
'urlManager'=>array(
      'urlFormat'=>'path',
      'showScriptName'=>false,
      'rules'=>array(
        '<action:card>/<alias:\w+>'=>'site/<action>', 
        '<id:\d+>'=>'site/view',
      ),
    ),

Но если есть лругие контроллеры с ними будут проблемы. Мой совет, обратитесь к специалисту, дайте ему денег, он решит проблему. Так как тут надо более глубоко вопрос изучить прежде чем, что-то менять в урлМэнеджере. Ну и повторюсь, что это надо было делать сразу, а на старом проекте лучше не делать этого.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы