我正在开发一个站点,它可以查找电话号码并将其存储到mysql数据库中。该网站有一个三页的向下钻取方法来查找电话号码.因此,程序的顺序是:
phone-number/areacode.php?a=aaaphone-number/prefix.php?a=aaa&b=bbbphone-number/number.php?a=aaa&b=bbb&c=ccccareacode.php只显示了系统中所有区号的列表。prefix.php简单地显示了系统中所有区号以及相关前缀的列表。
目前(出于SEO目的),我们将这三页重写为以下内容(按上述顺序排列):
phone-number/aaaphone-number/aaa/bbbphone-number/aaa/bbb/cccc我不知道为什么前面的开发人员使用斜杠,但同样为了SEO目的,我们希望在执行301重定向时将slashes更改为dashes。最终的结果应该是:
phone-number/aaaphone-number/aaa-bbbphone-number/aaa-bbb-cccc下面是.htaccess中为此使用的当前代码
RewriteCond %{HTTP_HOST} ^example\.com
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
RewriteRule phone-number/([0-9]{3})/([0-9]{3})/([0-9]{4}) /phone-number/number.php?a=$1&b=$2&c=$3
RewriteRule phone-number/([0-9]{3})/([0-9]{3}) /phone-number/prefix.php?a=$1&b=$2
RewriteRule phone-number/([0-9]{3}) /phone-number/areacode.php?a=$1我不知道从哪里开始到301重定向这些动态URL。
发布于 2014-04-10 17:59:54
您可以拥有这样的代码:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
# convert / to -
RewriteRule ^(phone-number)/([0-9]{3})/([0-9]{3})/([0-9]{4})/?$ /$1/$2-$3-$4 [L,R=301]
RewriteRule ^(phone-number)/([0-9]{3})/([0-9]{3})/?$ /$1/$2-$3 [L,R=301]
# rewrite to php handler
RewriteRule ^phone-number/([0-9]{3})-([0-9]{3})-([0-9]{4})/?$ /phone-number/number.php?a=$1&b=$2&c=$3 [L,QSA]
RewriteRule ^phone-number/([0-9]{3})-([0-9]{3})/?$ /phone-number/prefix.php?a=$1&b=$2 [L,QSA]
RewriteRule ^phone-number/([0-9]{3})/?$ /phone-number/areacode.php?a=$1 [L,QSA]https://stackoverflow.com/questions/22995479
复制相似问题