CodeIgniter Forums
CodeIgniter WITHOUT rewrite engine - Printable Version

+- CodeIgniter Forums (https://forum.codeigniter.com)
+-- Forum: Archived Discussions (https://forum.codeigniter.com/forumdisplay.php?fid=20)
+--- Forum: Archived General Discussion (https://forum.codeigniter.com/forumdisplay.php?fid=21)
+--- Thread: CodeIgniter WITHOUT rewrite engine (/showthread.php?tid=29931)



CodeIgniter WITHOUT rewrite engine - El Forum - 04-26-2010

[eluser]Yours3lf[/eluser]
Hello all,

my web server is IIS 7.0, I have successfully installed PHP, and phpinfo() is working. I wanted to install the CodeIgniter, but as far as I figured out, since I don't have apache running I can't use the rewrite engine. Still, I want to use it under IIS server, so there comes my question: Is it possible to run CodeIgniters WITHOUT rewrite engine? If so, how?

thanks in advance,
Yours3lf


CodeIgniter WITHOUT rewrite engine - El Forum - 04-26-2010

[eluser]WanWizard[/eluser]
The docs would be a good start: http://ellislab.com/codeigniter/user-guide/general/urls.html


CodeIgniter WITHOUT rewrite engine - El Forum - 04-27-2010

[eluser]skunkbad[/eluser]
I believe a windows server has some sort of rewriting capability, but you would have to search the docs or the internet to see if this is true. CI doesn't need to have the URLs rewritten to work, so just install it and see...


CodeIgniter WITHOUT rewrite engine - El Forum - 04-27-2010

[eluser]mddd[/eluser]
Yes you can run CodeIgniter without rewrites. Only thing is that your urls will look like this:
Code:
// 'normal' situation
www.example.com/controller/method
// without rewriting
www.example.com/index.php/controller/method

But most IIS installations I have seen at web hosters do include a rewrite engine. The syntax is almost the same as .htaccess.
(I think the system is more or less a copy of that). It is called Isapi rewrite. You put a file 'httpd.ini' instead of .htaccess.
Here is a sample from a working project:
Code:
[ISAPI_Rewrite]
# no www? go to www site
RewriteCond Host: (?!^www.mywebsite.com)(.+)
RewriteRule /(.*) http\://www.mywebsite.com/$2 [I,RP]

# rewrite for index.php
RewriteRule /(?:img|css|js|scripts|uploads)/(.*) $0 [I,L]
RewriteRule /(.*) /index.php/$1 [L]



CodeIgniter WITHOUT rewrite engine - El Forum - 04-27-2010

[eluser]Yours3lf[/eluser]
Okay that's what I've done:
I have copied the codeigniter code to the root directory and configured the config.php (set my base url to http://localhost/ which I'm using), and I have made the httpd.ini which you adviced with the following code:

Code:
[ISAPI_Rewrite]
# no www? go to www site
RewriteCond Host: (?!^localhost)(.+)
RewriteRule /(.*) http\://localhost/$2 [I,RP]

# rewrite for index.php
RewriteRule /(?:img|css|js|scripts|uploads)/(.*) $0 [I,L]
RewriteRule /(.*) /index.php/$1 [L]

is it correct? because it isn't working, it displays the welcome screen...


CodeIgniter WITHOUT rewrite engine - El Forum - 04-27-2010

[eluser]mddd[/eluser]
Unfortunately I am not an expert on Isapi. I try to work with Unix servers when I can. I got this file from some website and I was glad it worked, so I think I can't help you with any problems here.


CodeIgniter WITHOUT rewrite engine - El Forum - 04-27-2010

[eluser]Yours3lf[/eluser]
I've done some search and I got this:

you can pass-by the rewrite engine by calling php's header function and validating $_SERVER variables, so, with this my is working now Smile

for example:

Code:
<?php
if(stristr($_SERVER['REQUEST_URI'], '/some-directory/')){
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.my-website.com/--address from$_SERVER variables--");
}
?>



CodeIgniter WITHOUT rewrite engine - El Forum - 04-27-2010

[eluser]skunkbad[/eluser]
[quote author="Yours3lf" date="1272413990"]I've done some search and I got this:

you can pass-by the rewrite engine by calling php's header function and validating $_SERVER variables, so, with this my is working now Smile

for example:

Code:
<?php
if(stristr($_SERVER['REQUEST_URI'], '/some-directory/')){
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.my-website.com/--address from$_SERVER variables--");
}
?>
[/quote]

This seems really cheesy. You'd probably have the best success with rewrite help on a windows server forum. Actually.... and I don't mean to steer anyone away from this forum... but you might ask about getting the rewrite working over at phpfreaks.com. They even have a Microsoft IIS board


CodeIgniter WITHOUT rewrite engine - El Forum - 04-28-2010

[eluser]Kevv[/eluser]
If you're using IIS7.x you can use the "official" IIS URL Rewrite Module (http://www.iis.net/download/URLRewrite).

As well as providing the rewrite engine itself it also does a pretty good job of importing mod_rewrite (htaccess) rules into their IIS (web.config) equivalents. Just hit "import rules" and paste in the rules you want translated. It's not quite perfect but it should prove a good enough starting point Wink


CodeIgniter WITHOUT rewrite engine - El Forum - 04-28-2010

[eluser]Yours3lf[/eluser]
cheesy you mean cool?
i posted a topic in connection with this on phpfreaks.com's board you adviced hope they can help Smile