Linux - Server This forum is for the discussion of Linux Software used in a server related context. |
Notices |
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
Are you new to LinuxQuestions.org? Visit the following links:
Site Howto |
Site FAQ |
Sitemap |
Register Now
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
|
|
12-13-2010, 05:17 PM
|
#1
|
Member
Registered: Dec 2008
Location: Bulgaria
Distribution: Debian / Slackware / Ubuntu
Posts: 230
Rep:
|
Apache rewrite regex
Hi all,
I have simple blog I created myself. I am using mod rewrite to redirect all to a php file. But I have links in google like kdelchev.com/?p= or kdelchev.com/?cat=7
How can I match it with regular expression? I try with variants of ^([^/\?]+)/$ but with no success.
The desired result is to redirect such addresses to kdlechev.com or to 301 page
|
|
|
12-13-2010, 06:58 PM
|
#2
|
LQ Guru
Registered: Jun 2004
Location: Piraeus
Distribution: Slackware
Posts: 13,218
|
Hi,
You can use the following:
Code:
RewriteEngine on
RewriteCond %{QUERY_STRING} ^(.*)=
RewriteRule ^(.*)$ /? [R=301]
Regards
|
|
1 members found this post helpful.
|
12-13-2010, 07:21 PM
|
#3
|
Senior Member
Registered: Aug 2009
Posts: 3,790
|
It also helps if you can see what's going on, try turning on logging -
Code:
RewriteLog /var/log/httpd/mysite_rewrite.log
RewriteLogLevel 3
cheers
|
|
1 members found this post helpful.
|
12-14-2010, 03:34 AM
|
#4
|
Member
Registered: Dec 2008
Location: Bulgaria
Distribution: Debian / Slackware / Ubuntu
Posts: 230
Original Poster
Rep:
|
One more question: How can I redirect all invalid addresses like http://kdelchev.com/?cat=7 to http://kdelchev.com/ i.e. to match everything that begin with ? after the /
|
|
|
12-14-2010, 03:52 AM
|
#5
|
LQ Guru
Registered: Jun 2004
Location: Piraeus
Distribution: Slackware
Posts: 13,218
|
Quote:
Originally Posted by konzo
|
That's exactly what the RewriteCond in my previous post does.
Regards
|
|
|
12-14-2010, 03:59 AM
|
#6
|
Member
Registered: Dec 2008
Location: Bulgaria
Distribution: Debian / Slackware / Ubuntu
Posts: 230
Original Poster
Rep:
|
Thanks for the reply, bathory
It work for ?cat=7 but didn't work for ?cat= and other invalid addresses.
I added the rule and the condition exactly, but the ?cat string stay at the end of the address and no redirect is made.
The rule is at the beggigning of the .htaccess file. I added [L] just in case the condition is overridden by another rule, but that didn't help.
I also try toescaspe the questiuon mark:
[code]RewriteCond %{QUERY_STRING} ^(.*)=
RewriteRule ^(.*)$ /\? [R=301][L][code]
Maybe there is some other options I miss...
Anyway, that works, but it will be better to be able to redirect all invalid addresses.
Last edited by konzo; 12-14-2010 at 04:02 AM.
|
|
|
12-14-2010, 04:05 AM
|
#7
|
LQ Guru
Registered: Jun 2004
Location: Piraeus
Distribution: Slackware
Posts: 13,218
|
I guess you prepend the "RewriteEngine On" directive.
Also make sure that .htaccess files are read by apache. This is done by
in apache configuration file.
|
|
|
12-14-2010, 04:31 AM
|
#8
|
Member
Registered: Dec 2008
Location: Bulgaria
Distribution: Debian / Slackware / Ubuntu
Posts: 230
Original Poster
Rep:
|
Yes, I use RewriteEngine on. The htaacess file is read by apache. All changes I made make differencies.
Let's stay that way for now. Thank you very much fot the help!
|
|
|
All times are GMT -5. The time now is 12:30 AM.
|
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.
|
Latest Threads
LQ News
|
|