正则表达式以检查URL是否在特定域下

时间:2013-06-04 06:07:22

标签: php regex preg-match

我需要一个正则表达式来查找给定的URL是否在我的网站下。

例如:

http://www.my_domain.com/internal_page should give true.
www.my_domain.com/internal_page should give false.
http://www.my_domain.com should give false. ( should have a "/" after .com  ).
http://www.my_domain.com:dfdf should give false.

- 谢谢

4 个答案:

答案 0 :(得分:1)

以下是您想要的模式,

  $pattern = "#^https?://www.my_domain\.com(/.*)?$#";

  $test    = 'http://www.google.com';

  if ( preg_match( $pattern, $test ) )
  {
      echo $test, " <strong>matched!</strong><br>";
  } else {
      echo $test, " <strong>did not match.</strong><br>";
  }

答案 1 :(得分:1)

使用此

http:\/\/www\.my_domain\.com\/.*

你应该在发布之前做一些努力。

  • http:\/\/ - 表示http://

  • www\.my_domain\.com等同于www.mydomain.com

  • \/.*表示/和0或表达式结尾的任何字符。

答案 2 :(得分:0)

这个怎么样?

http:\/\/www\.my_domain\.com\/(.+)

它通过了你给的四个测试

答案 3 :(得分:0)

你可以这样做

 $url = "http://www.my_domain.com/internal_page";
 $host = "www.my_domain.com";
 if(strpos($url, "http://".$host."/") === 0){
      // we have a winner
 } else {
      // no good
 }