Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
246 views
in Technique[技术] by (71.8m points)

apache - Rewrite rules with query strings for subdomains with rootdomain

I'm not expert in .htaccess. I want to rewrite my news and blog url (with or without www) as:

bdnews24.com/reporter.php?u=Name to-> bdnews24.com/Name

m.bdnews24.com/reporter.php?u=Name to-> m.bdnews24.com/Name

img.bdnews24.com/image.php?id=791011.jpg to-> img.bdnews24.com/791011.jpg

bdnews24.com/details.php?id=100200300 to-> bdnews24.com/100200300

My current .htaccess file is below, which is not working as I want it. This catches all request URI and if not exist it will go to index.php?u=ANYTHING

Options +FollowSymlinks
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# AlegroCart REWRITES START
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) index.php/$1 [L,QSA]
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

This set of rules should do what you want, based on the information you've provided:

RewriteCond {%QUERY_STRING} ^u=(.*)
RewriteCond %{HTTP_HOST} ^(m.|www.)?bdnews.com$
RewriteRule ^reporter.php /%1?

RewriteCond {%QUERY_STRING} ^id=(.*)
RewriteCond %{HTTP_HOST} ^img.bdnews.com$
RewriteRule ^image.php /%1?

RewriteCond {%QUERY_STRING} ^id=(.*)
RewriteCond %{HTTP_HOST} ^(m.|www.)?bdnews.com$
RewriteRule ^details.php /%1?

First it matches the query string, then the host name(s), then rewrites the original query string (%1) into the new URL.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...