2009-10-16 109 views
1

我想这个URL转换:如何重写URL?

mysite.com/cgi-bin/test.cgi/some_random_numbers_and_letters/http/www.somewebsite.com 

到:

mysite.com/www.somewebsite.com 

我也想这个URL转换:

mysite.com/addname.php 

到:

mysite.com/add/ 

如何我要这样做吗?

回答

4

看看this blog post,你将学习如何使用mod_rewrite并练习自己。

+1

很好的答案。我从http://www.workingwith.me.uk/articles/scripting/mod_rewrite – Skilldrick 2009-10-17 12:50:39

1

内的.htaccess或apache2.conf

Rewrite Engine On 
Rewrite Rule ^(www\.)?([a-zA-Z]+)\.(.{1-5})$ cgi-bin/test.cgi/letters/http/$1$2$3 
Rewrite Rule ^addname.php$ cgi-bin/addname.cgi 
Rewrite Rule ^add/?$ cgi-bin/addname.cgi 

编辑:

Rewrite Engine On 
Rewrite Rule ^add/(.*)$ cgi-bin/addname.cgi$1 
Rewrite Rule ^addname.php(\?(.*))$ cgi-bin/addname.cgi$1 
RewriteCond %{REQUEST_URI} !^/$ 
Rewrite Rule ^((.*)\.)?(.*)(\.[A-Za-z\.]{2,8})(/.*)$ cgi-bin/test.cgi/?subdomain=$1&urlname=$2&tld=$3&path=$4 [L] 

固定和实际测试正则表达式这个时候。 $ 1,$ 2,$ 3,$ 4匹配域的各个部分。 整个域名只需使用$ 1 $ 2 $ 3 $ 4即可指定 我使用了域正则表达式,因此只有域名将被匹配,而其他网站路径则不会。

+0

了解到了我所知道的一切(不是很多,但是对于这个问题已经足够了),它可能并不总是www。它coudl是任何子域。 – pingu 2009-10-16 01:54:46

+0

这应该解决它。 – CodeJoust 2009-10-16 15:48:30