2011-11-10 46 views
0

我有这样的事情在.htaccess中为我的网站:问题用正则表达式的.htaccess规则

重写规则^([0-9] +)$ profilescorta.php T = $ 1 [L]

所以,如果用户访问的链接如:http:// url/1231231234 - 页面显示正确

现在,如果有人试图访问链接,如:http:// url/123.123.1234 - 显示404错误页面。

我已经加入该规则为.htaccess 重写规则^([0-9] +)(。*)$ 1 $ 2 [N]

如果有人accesing:HTTP:// URL/123.123。 1234 - 页面正确显示,但现在的问题是,相同的页面有2个不同的链接: http:// url/123.123.1234和http:// url/1231231234

是否有反正我可以使当有人访问http://url/123.123.1234将被重定向到http://url/1231231234

感谢, 波格丹

+0

重定向意味着你需要发送HTTP 301头? 什么是你正在尝试匹配的确切数据? 它是否像IP地址? –

+0

我已经修改了一些你的答案,我想我已经成功了。 (。*):所以我改变了你的规则 重写规则^([0-9] +)\/$ 1 $ 2 [R] –

回答

0

新的解决方案:

#Better 1 redirect /123.123.1234 -> /1231231234 
#Assume phone number in this format: [3 Digits] Dot [3 Digits] Dot [4 Digits] 
RewriteRule ^([0-9]{3})\.([0-9]{3})\.([0-9]{4})$ /$1$2$3 [R=301] 

老坏的解决方案:

[Bad] Double redirect /123.123.1234 -> /123123.1234 -> /1231231234 
RewriteRule ^([0-9]+).(.*) /$1$2 [R] 
+0

谢谢您的回答。不幸的是,如果我把你提到的规则,一切都搞砸了。 所以IDEEA是这样的,PHP的查询是关于这10位长的很像1231231234. 现在,如果有人类型的HTTP电话号码:// URL/123.123.1234(这种格式的电话号码)的404 eror页面显示,因为我所做的查询不是针对123.123.1234而是针对1231231234. 我想重定向,如果有人在url中输入123.123.1234到1231231234. 示例:http://escortele.eu/0725073448, http://escortele.eu/0725.073.448 –

+0

我从你那里获得URL规则后添加了更好的解决方案。这一个是更严格的,做一个重定向,旧的做双重定向。 –

+0

好的,谢谢,我会检查并回复是否正在工作或现在。非常感谢你的帮助! –