Файл Web Config для приложения codeigniter
Я страдаю файлом веб-конфигурации, который не переписывает url для моего приложения codeigniter. здесь находится файл веб-конфигурации.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Clean URL" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="index.php?{R:1}" appendQueryString="true" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
вот мой сайт:
http://gandhitomodi.com
Я не могу получить этот тип URL
http://gandhitomodi.com/controller/method/
например
http://gandhitomodi.com/welcome/index/
Пожалуйста, помогите мне в этом.
**** Отредактированный *****
здесь находится route.php
$route['default_controller']="welcome/index";
$route['sendmail']="welcome/send";
Вот настройки config.php, которые я изменил.
$config['base_url']="http://gandhitomodi.com/";
$config['index_page']='';
$config['url_protocal']='PATH_INFO';`
Ответы
Ответ 1
Попробуйте этот метод, как упоминание здесь
https://blogs.msdn.microsoft.com/azureossds/2015/04/23/converting-apache-htaccess-rules-to-iis-web-config-using-iis-manager-for-azure-websites/
также упоминается здесь
https://blogs.msdn.microsoft.com/azureossds/2015/09/28/convert-apache-htaccess-to-iis-web-config/
в разделе перезаписи URL. Он имеет тот же .htaccess, который я использую, также есть много онлайн-конвертеров, которым вы можете попробовать попробовать
Ответ 2
Для вашего конфигурационного файла попробуйте эту статью. Похоже, что ваша проблема связана с вашей линией действий.
<action type="Rewrite" url="index.php?{R:1}" appendQueryString="true" />
Измените это на:
<action type="Rewrite" url="index.php/{R:1}" appendQueryString="true" />
Вопросительный знак вызывает вашу проблему. Кроме того, ваша строка соответствия может быть изменена на:
<match url="^(.*)$" ignoreCase="false" />
Это немного более специфично и может предотвратить некоторые головные боли позже.
Ответ 3
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Imported Rule 1" stopProcessing="true">
<match url="^(.*)$" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
</conditions>
<action type="Rewrite" url="index.php?url={R:1}" appendQueryString="true" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
вы можете попробовать этот код, он будет работать нормально, я также использую только этот код
Благодарю вас
Ответ 4
У меня также возникает проблема, когда я работал с mssql и сервером Windows и платформой codeigniter. Мне так сложно удалить index.php из url, или вы можете сказать довольно url. После много диссоциации и r & d. Я получил некоторые изменения в файле webcofig в корне сервера.
Правило перезаписи для веб-конфигурации для удаления index.php
<configuration>
<appSettings>
// default code..
</appSettings>
<system.webServer>
<handlers>
<clear />
// another default code
</handlers>
<rewrite>
<rules>
<rule name="Rule" 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" />
<add input="{URL}" pattern="^/favicon.ico$" ignoreCase="false" negate="true" />
</conditions>
<action type="Rewrite" url="index.php/{R:1}" appendQueryString="true" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Определенно, его работающая, а также остающаяся часть кодеригрина работает нормально. Также важно установить настройку url и url по умолчанию в routes.php и config.php. Если какая-либо другая помощь напишет ваш комментарий.
Ответ 5
Сначала нам нужно удалить index.php из url
поэтому в route.php вы измените строку
$route['default_controller'] = "welcome";
$route['404_override'] = 'notfound';
и в config.php вы измените строку
$config['uri_protocol'] = 'AUTO';
После этого вам нужно добавить файл .htaccess в корневой каталог сайта следующим образом:
/application
/system
/assets
/.htaccess
и добавьте этот код в файл .htaccess
Header append X-FRAME-OPTIONS "SAMEORIGIN"
Header set Cache-Control "no-store"
Header set X-Content-Type-Options "nosniff"
Header set Strict-Transport-Security "max-age=31536000; includeSubDomains"
ErrorDocument 403 /notfound.php
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]
<IfModule !mod_rewrite.c>
# If we don't have mod_rewrite installed, all 404's
# can be sent to index.php, and everything works as normal.
# Submitted by: ollakalla
ErrorDocument 404 /index.php
</IfModule>
Затем вы можете получить доступ к вашему методу в контроллере, как в этом примере
class Reviews extends CI_Controller
{
public function latest()
{
// Some code here
}
}
http://gandhitomodi.com/reviews/latest/