Intereting Posts

Как удалить index.php в Yii Framework

введите описание изображения здесь Привет, парень, я новичок в Yii. Я хочу удалить index.php из моих URL-адресов. После документации yii, когда я поместил код двигателя rewrite в мой файл .htaccess и установил showScriptName в false в файле config / main.php, я получаю ошибку внутреннего сервера 500. Мой файл .htaccess находится в корневой папке моего приложения. Скажи мне, где я делаю неправильно

ОБНОВИТЬ:

Это код в моем файле .htaccess:

# 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 

Related of "Как удалить index.php в Yii Framework"

Попробуй это

Хорошее описание доступно здесь.

http://www.yiiframework.com/doc/guide/1.1/en/topics.url#hiding-x-23x

Если вы также хотите удалить /index URL-адрес главной страницы, добавьте ''=>'site/index' в начало своих правил urlManager, например:

 'urlManager'=>array( 'urlFormat'=>'path', 'showScriptName' => false, 'rules'=>array( ''=>'site/index', '<action>'=>'site/<action>', 

взято непосредственно из документации yii

Скрытие index.php Еще одна вещь, которую мы можем сделать для дальнейшей очистки наших URL-адресов, т. Е. Скрытия скрипта ввода index.php в URL-адресе. Это требует от нас настройки веб-сервера, а также компонента приложения urlManager.

Сначала нам нужно настроить веб-сервер так, чтобы URL-адрес без сценария ввода все еще мог обрабатываться скриптом ввода. Для HTTP-сервера Apache это можно сделать, включив механизм перезаписи URL-адресов и указав некоторые правила перезаписи. Мы можем создать файл /wwwroot/blog/.htaccess со следующим контентом. Обратите внимание, что один и тот же контент можно также добавить в файл конфигурации Apache в элементе Directory для / wwwroot / blog.

 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 

Затем мы настраиваем свойство showScriptName компонента urlManager как false.

Теперь, если мы будем называть $ this-> createUrl ('post / read', array ('id' => 100), мы получим URL / post / 100. Что еще более важно, этот URL-адрес может быть правильно распознан нашим веб-приложением.

Надеюсь, это поможет, потому что тоже решила мою проблему.

Сделайте эти 3 шага:

  1. Включить перезапись Url на Apache.

  2. Место .htaccess на основе вашего проекта

RewriteEngine on

 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php 
  1. В вашей конфигурации protected / config / main.php установите showScriptName на false, как это, на компоненты вашего менеджера URL >> urlManager
 'urlManager'=>array( 'urlFormat'=>'path', 'rules'=>array( '<controller:\w+>/<id:\d+>'=>'<controller>/view', '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>', '<controller:\w+>/<action:\w+>'=>'<controller>/<action>', ), 'showScriptName'=>false, ) 

измените конфигурацию / main.php, как показано ниже:

 'urlManager'=>array( 'urlFormat'=>'path', 'showScriptName'=>false, 'caseSensitive'=>false, 'rules'=>array( '<controller:\w+>/<id:\d+>'=>'<controller>/view', '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>', '<controller:\w+>/<action:\w+>'=>'<controller>/<action>', ), 

затем поместите файл htaccess в базовый каталог с защищенной папкой (он может находиться внутри защищенной папки), поместите код ниже в ваш файл 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 

или попробуйте с этим —

 RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)\?*$ index.php/$1 [L,QSA] 

сделано … надеюсь, что это сработает

Я просто наткнулся на эту тему, но обнаружил, что для того, чтобы заставить ее работать, я не только должен был следовать инструкциям для добавления файла .htaccess, но также должен был раскомментировать раздел ниже из моего основного файла конфигурации (\ protected \ config \ main. PHP):

  // uncomment the following to enable URLs in path-format 'urlManager'=>array( 'urlFormat'=>'path', 'rules'=>array( '<controller:\w+>/<id:\d+>'=>'<controller>/view', '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>', '<controller:\w+>/<action:\w+>'=>'<controller>/<action>', ), ), 

У меня была и эта проблема сегодня, когда я перенес свой проект на Linux-сервер. Я сделал все, что показано, но не помогло. Затем я также скопировал файл .htaccess в защищенный каталог, затем он сработал.

Убедитесь, что если после всех изменений в .htaccess & urlManager, если он все еще не работает никому из вас, это то, что вы изменили свой параметр AllowOverride для корневого каталога в файле Apache httpd.conf на «Все» вместо "Никто". После модификации перезапустите apache. Поскольку это параметр, который позволяет apache решить, что все параметры могут быть переопределены в файле .htaccess

изменить значения конфигурации apache

AllowOverride none для AllowOverride ALL

в httpd.conf или httpd-vhosts.conf