【发布时间】:2014-05-24 14:22:31
【问题描述】:
我正在开发一个查找电话号码并将其存储到 mysql 数据库的网站。该网站有一个三页的向下钻取方法来查找电话号码。所以按顺序的过程是:
phone-number/areacode.php?a=aaaphone-number/prefix.php?a=aaa&b=bbbphone-number/number.php?a=aaa&b=bbb&c=cccc
areacode.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
我不知道从哪里开始对这些动态 URL 进行 301 重定向。
【问题讨论】:
标签: apache .htaccess mod-rewrite redirect http-status-code-301