Closed

Apache mod rewrite

This project received 10 bids from talented freelancers with an average bid price of $61 USD.

Get free quotes for a project like this
Employer working
Skills Required
Project Budget
$30 - $100 USD
Total Bids
10
Project Description

Apache url rewrite works in htaccess but not in [url removed, login to view]

The following is a detailed description of the problem taken from a post I made at a forum. servername, IP, email address blocked out with ***.

Linux Fedora/php5/[url removed, login to view]

Successful bidder will get an exact copy of my [url removed, login to view] file to work on because I can't have the Apache server continually restarted to test. Payment for successful outcome only.
----

this url:

/Keith-Nelson/faves/15/[url removed, login to view]

needs to be rewritten to:

/[url removed, login to view]

The following rewrite for this works in an htacces file but not in the [url removed, login to view]:

RewriteEngine On
RewriteRule ^[^/]+/faves/([^/]+)/([^/]+).html$ [url removed, login to view]$1 [L]
RewriteRule ^faves/([^/]+)/([^/]+).html$ [url removed, login to view]$1 [L]



Here it is in the [url removed, login to view]

<VirtualHost [url removed, login to view]:80>
ServerAdmin awarner@***.com
DocumentRoot /sites/***.com/html
ServerName ***.com
ErrorLog /var/log/httpd/site3-error_log
CustomLog /var/log/httpd/site3-access_log common

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^[^/]+/faves/([^/]+)/([^/]+).html$ [url removed, login to view]$1 [L]
RewriteRule ^faves/([^/]+)/([^/]+).html$ [url removed, login to view]$1 [L]
</IfModule>
</VirtualHost>


------ COMMENT:-----

You must use

RewriteRule ^/[^/]+/faves/([^/]+)/([^/]+).html$ /[url removed, login to view]$1 [L]
RewriteRule ^/faves/([^/]+)/([^/]+).html$ /[url removed, login to view]$1 [L]

instead (note the leading slashes).


------ COMMENT:-----

I tried it and restarted server but no luck. I'm going to try something really basic just to make sure rewrite is working

------ COMMENT:-----

I tried this, which redirects everything to [url removed, login to view], and it works:

<VirtualHost [url removed, login to view]:80>
ServerAdmin awarner@***.com
DocumentRoot /sites/***.com/html
ServerName ***.com
ErrorLog /var/log/httpd/site3-error_log
CustomLog /var/log/httpd/site3-access_log common

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond $1 !^([url removed, login to view]|images|[url removed, login to view])
RewriteRule ^(.*)$ /[url removed, login to view]$1 [L]
</IfModule>

</VirtualHost>

------ COMMENT:-----

> but no luck

What can you find in your rewriteLog?

You can start logging with

RewriteLog logs/[url removed, login to view]
RewriteLogLevel 5

------ COMMENT:-----

It's just getting passed through:

[url removed, login to view] - - [06/Nov/2006:08:11:00 -0500] [***.com/sid#9504f74][rid#95f372c/initial] (2) init rewrite engine with requested uri /Dryden-Mitchell/faves/465/[url removed, login to view]
[url removed, login to view] - - [06/Nov/2006:08:11:00 -0500] [***.com/sid#9504f74][rid#95f372c/initial] (1) pass through /Dryden-Mitchell/faves/465/[url removed, login to view]

<VirtualHost [url removed, login to view]:80>
ServerAdmin awarner@***.com
DocumentRoot /sites/***.com/html
ServerName ***.com
ErrorLog /var/log/httpd/site3-error_log
CustomLog /var/log/httpd/site3-access_log common
#ErrorDocument 404 /[url removed, login to view]

RewriteLog /var/log/httpd/[url removed, login to view]
RewriteLogLevel 5

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^/[^/]+/faves/([^/]+)/([^/]+).html$ /[url removed, login to view]$1 [L]
RewriteRule ^/faves/([^/]+)/([^/]+).html$ /[url removed, login to view]$1 [L]
</IfModule>

</VirtualHost>

------ COMMENT:-----


That means that the line 'RewriteEngine on' is present in per-server context, but the complete ruleset processing (checking the rule-pattern "applying pattern ...") is missing at all. So the RewriteRule directives are missing someway but we know that the virtual host did match, because if not we wouldn't find that log entry (RewriteLogLevel defined only for VirtualHost ******:80). Something other outside the RewriteRule directive must be wrong here.

Looking to make some money?

  • Set your budget and the timeframe
  • Outline your proposal
  • Get paid for your work

Hire Freelancers who also bid on this project

    • Forbes
    • The New York Times
    • Time
    • Wall Street Journal
    • Times Online