Keep Server Online
If you find the Apache Lounge, the downloads and overall help useful, please express your satisfaction with a donation.
or
A donation makes a contribution towards the costs, the time and effort that's going in this site and building.
Thank You! Steffen
Your donations will help to keep this site alive and well, and continuing building binaries. Apache Lounge is not sponsored.
| |
|
Topic: RewriteRule not working |
|
Author |
|
david.livelsberger
Joined: 18 Jan 2017 Posts: 8 Location: Detroit, Michigan, USA
|
Posted: Tue 17 Apr '18 19:24 Post subject: RewriteRule not working |
|
|
I have been asked to add the following rewrite to a website:
http://www.website.com/neighborhoods/columbia-street
needs to be redirected to
http://www.website.com
I have tried the following. Neither works.
RewriteCond %{HTTP_HOST} ^(www\.)?website\.com/neighborhoods/columbia-street$ [NC]
RewriteRule ^(.*) http://www.website.com/$1 [R=301,L]
RewriteCond %{DOCUMENT_ROOT}/neighborhoods/columbia-street/%{REQUEST_URI} -f
RewriteRule ^(.+) %{DOCUMENT_ROOT}/$1 [L]
What am I doing wrong? Can anybody please help me to get this redirect to work?
Thank you in advance for your help! |
|
Back to top |
|
mraddi
Joined: 27 Jun 2016 Posts: 152 Location: Schömberg, Baden-Württemberg, Germany
|
Posted: Wed 18 Apr '18 11:04 Post subject: |
|
|
Hello David,
Your first try will not work as you are checking agains the HOST-header and not against the complete URL.
The second try is confusing me:
It look similar to the following line from http://httpd.apache.org/docs/current/mod/mod_rewrite.html
RewriteCond /var/www/%{REQUEST_URI} !-f
There it is checked that the requested ressource is available on the filesystem. But in my eyes the part "neighborhoods/columbia-street/" is somehow wrong.
Please try the following config:
RewriteCond %{REQUEST_URI} ^/neighborhoods/columbia-street
RewriteRule ^(.*) / [R=302,L]
which redirects all requests to /neighborhoods/columbia-street and ressources within to /.
Or use just the following One-Liner:
RewriteRule "^neighborhoods/columbia-street(.*)" "/$1" [R=302,L]
to redirect all requests to /neightborhoods/columbia-street two directories up:
/neighborhoods/columbia-street => /
/neighborhoods/columbia-street/no1 => /no1
/neighborhoods/columbia-street/no2/flat3 => /no2/flat3
Greetings
Matthias |
|
Back to top |
|
david.livelsberger
Joined: 18 Jan 2017 Posts: 8 Location: Detroit, Michigan, USA
|
Posted: Wed 18 Apr '18 13:43 Post subject: |
|
|
Matthias,
vielen Dank!
I used your "one-liner" and it worked perfectly!
mraddi wrote: | Hello David,
Your first try will not work as you are checking agains the HOST-header and not against the complete URL.
The second try is confusing me:
It look similar to the following line from http://httpd.apache.org/docs/current/mod/mod_rewrite.html
RewriteCond /var/www/%{REQUEST_URI} !-f
There it is checked that the requested ressource is available on the filesystem. But in my eyes the part "neighborhoods/columbia-street/" is somehow wrong.
Please try the following config:
RewriteCond %{REQUEST_URI} ^/neighborhoods/columbia-street
RewriteRule ^(.*) / [R=302,L]
which redirects all requests to /neighborhoods/columbia-street and ressources within to /.
Or use just the following One-Liner:
RewriteRule "^neighborhoods/columbia-street(.*)" "/$1" [R=302,L]
to redirect all requests to /neightborhoods/columbia-street two directories up:
/neighborhoods/columbia-street => /
/neighborhoods/columbia-street/no1 => /no1
/neighborhoods/columbia-street/no2/flat3 => /no2/flat3
Greetings
Matthias |
|
|
Back to top |
|
|
|
|
|
|