![]() |
problem with mod rewrite - Printable Version +- CodeIgniter Forums (https://forum.codeigniter.com) +-- Forum: Archived Discussions (https://forum.codeigniter.com/forumdisplay.php?fid=20) +--- Forum: Archived Development & Programming (https://forum.codeigniter.com/forumdisplay.php?fid=23) +--- Thread: problem with mod rewrite (/showthread.php?tid=32340) |
problem with mod rewrite - El Forum - 07-20-2010 [eluser]vindhyareddy[/eluser] I am trying to make changes and create a .htaccess file to prevent the use of index.php in my url. I have my code set up on localhost. The code is in ./www/devit I am writing the following code under .htaccess - and placing it at ./www/devit/.htaccess Code: <IfModule mod_rewrite.c> Inorder to access a controller by name users, I need to use the url as : http://localhost/devit/index.php/users/id/1 I want this to change to: http://localhost/devit/users/id/1 But when I put this .htaccess file in the devit folder I am getting a 500 internal server error. Can someone guide me with this? What is the probable mistake I am making? FYI, config.php is : Code: <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); Any suggestions or solutions???? problem with mod rewrite - El Forum - 07-20-2010 [eluser]KingSkippus[/eluser] If you haven't already, read the "Removing the index.php file" section of the CodeIgniter URLs chapter of the user manual. My first thought looking at your .htaccess is that man, that's kind of overkill for something that's pretty simple. About the only tweak I've ever seen anyone need is adding top-level subdirectories to the RewriteCond line. For example, if you have top-level /css and /scripts directories, use the following line: Code: RewriteCond $1 !^(index\.php|images|robots\.txt|css|scripts) Is there something in particular that you were trying to accomplish with that version of the .htaccess that the one described in the manual doesn't do? problem with mod rewrite - El Forum - 07-20-2010 [eluser]KingSkippus[/eluser] [quote author="vindhyareddy" date="1279679250"] Inorder to access a controller by name users, I need to use the url as : http://localhost/devit/index.php/users/id/1 [/quote] Ah, here's your problem. The RewriteRules assume that all of this stuff is in your root directory. Since you've got your CodeIgniter stuff buried in a subdirectory, you need to modify your RewriteRules to take that into account: Code: RewriteEngine on In your example, you define a RewriteBase directory. According to the mod_rewrite documentation, it shouldn't contain the server name. Alternatively, you could change your RewriteBase line to: Code: RewriteBase /devit problem with mod rewrite - El Forum - 07-21-2010 [eluser]vindhyareddy[/eluser] Hey Thanks for the replies. I did the changes as u said to my .htaccess file. Now my .htaccess is as follows: Code: <IfModule mod_rewrite.c> Whats the mistake ?? When I try http://localhost/devit/index.php/users/user_info/id/2 I am getting a 404 page not found error When I try http://localhost/devit/users/user_info/id/2 I am getting "Not Found The requested URL /devit/users/user_info/id/2 was not found on this server. problem with mod rewrite - El Forum - 07-21-2010 [eluser]pickupman[/eluser] The file is relative to where you place the .htaccess file. Here is my copy I've got running CI in a subfolder. The .htaccess is placed in my subfolder. c:\wamp\www\property\.htaccess Code: <IfModule mod_rewrite.c> problem with mod rewrite - El Forum - 07-21-2010 [eluser]vindhyareddy[/eluser] Hey pickupman So now u have put the CI folder and the property folder in www And CI has your code and property has the .htaccess file. Is that right? Also, how are you telling your CI folder to access this .htaccess? My file structure is as follows: C:/wamp/www/devit devit has - application - system - index.php - license.txt - README.markdown I am developing a RESTful web services API. So now how do I write the rule in the .htaccess file? I need to access : http://localhost/devit/index.php/users/user/id/1 as http://localhost/devit/users/user/id/1 Here, devit is my folder in www. users is my controller name user is my function and id is parameter name with value 1 problem with mod rewrite - El Forum - 07-21-2010 [eluser]pickupman[/eluser] I've got the same thing: c:\wamp\www \property \application \system index.php .htaccess I have many CI project subfolders. I use the same .htaccess in each of them. When I upload the files to server in the root folder, .htaccess will still work because it is relative to the folder it is in. Copy the contents I posted above, clear your browsers cache, and reload. |