user740292
user740292

Reputation: 1

Zend application problem on iis6

When I'm passing the URL like http://localhost/home/index/index in my application I'm getting the module=>default, controller=>index, action=>index. Whatever may be the URL i'm getting the same thing. I'm running the application on IIS6 in windows 2003 platform. If i'm overriding the module as 'home' in Zend_Controller_Request_Abstract=>getModuleName() method then my home page is coming fine. I'm unable to get where exactly it is overriding the value to 'default','index','index'. Can any one help me?

Thanks in advance

Update: The problem is with $_SERVER['HTTP_X_REWRITE_URL']. I'm getting the same URI into both $_SERVER['HTTP_X_REWRITE_URL'] and $_SERVER['REQUEST_URI'] like /public_mvc/index.php. I'm not overriding the value of $_SERVER['HTTP_X_REWRITE_URL'] anywhere in my code. My .htaccess code is like this.

RewriteEngine on

RewriteRule ^admin-mvc(.*)$ public_mvc/admin.php [L]

RewriteCond %{REQUEST_FILENAME} -s [OR]

RewriteCond %{REQUEST_FILENAME} -l [OR]

RewriteCond %{REQUEST_FILENAME} -d

RewriteRule ^[\w/\%](?:.(?!(?:js|ico|gif|jpg|png|css|html)$)[\w\%]$)? public_mvc/index.php [I]

RewriteRule ^$ /home [r=301,nc]

I'm using ISAPI Rewrite 3 for URL Rewriting.

Upvotes: 0

Views: 341

Answers (1)

udo
udo

Reputation: 5210

this is how Zend Framework handles the "default" module.

You can access your root path like this:

  • domain.tld/
  • domain.tld/index
  • domain.tld/index/index
  • domain.tld/default/index/index

all request will result in

  • module: default
  • controller: index
  • action: index

Update 1:

Probably there is a static route for module home configured

which sends requests for

  • /home/index/index

to

  • /default/index/index

Update 2:

Make sure you have Isapi_Rewrite installed as indicated here (search for IIS):

Update 3:

Add this rewirte rule to your .htaccess (as indicated in Zend article of Update 2):

RewriteRule ^[\w/\%]*(?:\.(?!(?:js|ico|gif|jpg|png|css|html)$)[\w\%]*$)? /index.php [I]

Update 4: Try the following code in your .htaccess (it is the recommendation from Zend article of Update 2)

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
RewriteRule ^[\w/\%]*(?:\.(?!(?:js|ico|gif|jpg|png|css|html)$)[\w\%]*$)? /index.php [I]

If this does not work, I'm not sure what the solution is. I'm not using IIS and not familiar with the particularities there...

Upvotes: 0

Related Questions