php - एक codeigniter अनुप्रयोग के लिए वेब कॉन्फिफ़ फ़ाइल




iis web-config (4)

मैं एक वेब कॉन्फ़िग फ़ाइल से पीड़ित हूं जो मेरे कोडिनेटर एप्लिकेशन के लिए यूआरएल को फिर से नहीं लिखता है यहां वेब कॉन्फ़िग फाइल है

<?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

मैं इस प्रकार के यूआरएल को प्राप्त करने में सक्षम नहीं हूं http://gandhitomodi.com/controller/method/

उदाहरण के लिए

http://gandhitomodi.com/welcome/index/

कृपया इस के माध्यम से मेरी सहायता करें

**** संपादित *****

यहाँ मार्ग.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';`

पहले हमें url से index.php को निकालना होगा

इसलिए 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/ द्वारा


क्या आपने इस विधि को यहाँ उल्लेख के रूप में देखा है

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 है जो मैं भी उपयोग कर रहा हूं वहां कई ऑनलाइन कन्वर्टर हैं जिनके लिए आप कोशिश कर सकते हैं


जब भी मैं mssql और windows सर्वर और codeigniter मंच के साथ काम कर रहा था, तब भी मुझे समस्या में है मेरे लिए यह बहुत मुश्किल है कि आप url से index.php को निकालें या आप बहुत यूआरएल कह सकते हैं। बहुत सारे विघटन और आर एंड डी के बाद मुझे सर्वर के रूट पर वेबकॉफ़िग फ़ाइल में कुछ बदलाव आए हैं I

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 आदि सेटिंग। Php और config.php यदि कोई अन्य मदद आपकी टिप्पणी लिखने में मदद करता है


अपनी कॉन्फ़िग फाइल के लिए, इस आलेख को देखें ऐसा प्रतीत होता है कि आपकी समस्या आपकी एक्शन लाइन पर है

<action type="Rewrite" url="index.php?{R:1}" appendQueryString="true" />

इसे बदलें:

<action type="Rewrite" url="index.php/{R:1}" appendQueryString="true" />

प्रश्न चिह्न आपकी समस्या पैदा कर रहा है साथ ही, आपकी मैच लाइन भी बदल सकती है:

<match url="^(.*)$" ignoreCase="false" />

यह थोड़ी अधिक विशिष्ट है और बाद में कुछ सिरदर्द को रोक सकता है।