mod_rewrite issue with apache 2.0

This is a discussion on mod_rewrite issue with apache 2.0 within the Apache Web Server forums, part of the Web Server and Related Forums category; Hallo Folks, I have an issue with mo_rewrite. I have setted up but it does not work as expected. Here ...


Go Back   Usenet Forums > Web Server and Related Forums > Apache Web Server

FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 06-24-2005
Peter Valicek
 
Posts: n/a
Default mod_rewrite issue with apache 2.0

Hallo Folks,

I have an issue with mo_rewrite.
I have setted up but it does not work as expected.
Here is a snippet:

# Login infopage
RewriteRule ^login/?$ public.php?node=login&%{QUERY_STRING} [L]
# Need extra Page for login into Admin area
RewriteRule ^login/admin
public.php?node=login&page=admin&%{QUERY_STRING} [L]
RewriteRule ^login/member
public.php?node=login&page=member&%{QUERY_STRING} [L]
RewriteRule ^login/error
public.php?node=login&page=error&%{QUERY_STRING} [L]

# Admin/Private Area
RewriteRule ^admin/([a-z0-9]+)/?$ admin.php?node=$1&%{QUERY_STRING} [L]
RewriteRule ^admin/?$ admin.php?node=home&%{QUERY_STRING} [L]

The login stuff is working fine when I have like an url:
http://localhost/app/login/admin

But http://localhost/app/admin/help does not work.
Why?

When I take a look in the $_SERVER vars from the php output I can see
following difference what I can't explain.

This is the output from the working ones:
[SCRIPT_FILENAME] => /var/www/html/valicek_dev/public.php
[REMOTE_PORT] => 1332
[REDIRECT_QUERY_STRING] => node=login
[REDIRECT_URL] => /valicek_dev/login
[GATEWAY_INTERFACE] => CGI/1.1
[SERVER_PROTOCOL] => HTTP/1.1
[REQUEST_METHOD] => GET
[QUERY_STRING] => node=login
[REQUEST_URI] => /valicek_dev/login
[SCRIPT_NAME] => /valicek_dev/public.php
[PHP_SELF] => /valicek_dev/public.php
[PATH_TRANSLATED] => /var/www/html/valicek_dev/public.php
[argv] => Array
(
[0] => node=login
)

[argc] => 1

This the output where it does not work:
[SCRIPT_FILENAME] => /var/www/html/valicek_dev/admin.php
[REMOTE_PORT] => 1343
[GATEWAY_INTERFACE] => CGI/1.1
[SERVER_PROTOCOL] => HTTP/1.1
[REQUEST_METHOD] => POST
[QUERY_STRING] =>
[REQUEST_URI] => /valicek_dev/admin/home
[SCRIPT_NAME] => /valicek_dev/admin.php
[PATH_INFO] => /home
[PATH_TRANSLATED] => /var/www/html/home
[PHP_SELF] => /valicek_dev/admin.php/home
[argv] => Array
(
)

[argc] => 0

May someone can help me?


Cheers
Peter
  #2 (permalink)  
Old 06-24-2005
HansH
 
Posts: n/a
Default Re: mod_rewrite issue with apache 2.0

"Peter Valicek" <sonny2@gmx.net> schreef in bericht
news:42bc59cb$0$219$9b622d9e@news.freenet.de...
> I have an issue with mo_rewrite.

On which version of Apache and on what platrom??

> I have setted up but it does not work as expected.
> Here is a snippet:
> # Login infopage RewriteRule ^login/?$

public.php?node=login&%{QUERY_STRING} [L]
> # Need extra Page for login into Admin area
> RewriteRule ^login/admin public.php?node=login&page=admin&%{QUERY_STRING}

[L]
> RewriteRule ^login/member

public.php?node=login&page=member&%{QUERY_STRING} [L]
> RewriteRule ^login/error public.php?node=login&page=error&%{QUERY_STRING}

[L]
Instead of '&%{QUERY_STRING} [L]' use[L,QSA] then collapse the three lines
into ONE:
RewriteRule ^login/(admin|member|error) public.php?node=login&page=$1 [L,
QSA]

> # Admin/Private Area
> RewriteRule ^admin/([a-z0-9]+)/?$ admin.php?node=$1&%{QUERY_STRING} [L]
> RewriteRule ^admin/?$ admin.php?node=home&%{QUERY_STRING} [L]
>
> The login stuff is working fine when I have like an url:
> http://localhost/app/login/admin
>
> But http://localhost/app/admin/help does not work.
> Why?

No clue 'does not work' is not explaining which detail fails.
What's in the error log?!
Anything in an rewrite log??

> When I take a look in the $_SERVER vars from the php output I can see
> following difference what I can't explain.
> This is the output from the working ones:
> [SCRIPT_FILENAME] => /var/www/html/valicek_dev/public.php
> [REMOTE_PORT] => 1332
> [REDIRECT_QUERY_STRING] => node=login
> [REDIRECT_URL] => /valicek_dev/login
> [GATEWAY_INTERFACE] => CGI/1.1
> [SERVER_PROTOCOL] => HTTP/1.1
> [REQUEST_METHOD] => GET
> [QUERY_STRING] => node=login
> [REQUEST_URI] => /valicek_dev/login
> [SCRIPT_NAME] => /valicek_dev/public.php
> [PHP_SELF] => /valicek_dev/public.php
> [PATH_TRANSLATED] => /var/www/html/valicek_dev/public.php
> [argv] => Array
> (
> [0] => node=login
> )
>
> [argc] => 1
>
> This the output where it does not work:
> [SCRIPT_FILENAME] => /var/www/html/valicek_dev/admin.php
> [REMOTE_PORT] => 1343
> [GATEWAY_INTERFACE] => CGI/1.1
> [SERVER_PROTOCOL] => HTTP/1.1
> [REQUEST_METHOD] => POST
> [QUERY_STRING] =>
> [REQUEST_URI] => /valicek_dev/admin/home
> [SCRIPT_NAME] => /valicek_dev/admin.php
> [PATH_INFO] => /home
> [PATH_TRANSLATED] => /var/www/html/home
> [PHP_SELF] => /valicek_dev/admin.php/home
> [argv] => Array
> (
> )
>
> [argc] => 0

So, 'METHOD=POST is failing, where 'METHOD=GET' works.
In the requesting page, change your the method property of the <FORM ...
>tag to GET .


A posted form does not append the field names and values to the URI; they
are as the body of request. If the data is not in the QUERY_STRING you can
not pass it along ...

This confuses me, AFAIK loosing POSTed data on redirect only occurs on true
redirects: with HTTP response code 30x and a location header send to the
browser. Can you sniff some header pe with FireFox and loveHTTPheaders?

HansH


 
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are Off
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT +1. The time now is 08:13 PM.


Powered by vBulletin® Version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.0.0