我该如何重写网址?

时间:2009-10-16 01:47:05

标签: apache .htaccess mod-rewrite

我想转换此网址:

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

成:

mysite.com/www.somewebsite.com

我还想转换此网址:

mysite.com/addname.php

成:

mysite.com/add/

我该怎么做?

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分: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即可指定整个域 我使用了域名正则表达式,因此只会匹配域名,而其他网站路径则不会。