drupal路径别名存在与否

时间:2010-05-06 12:02:16

标签: drupal

如何查找网址是否存在?即导致'页面未找到'错误的网址。例如:发现测试/测试页面是否存在

我的意思是检查网站上是否确实存在给定的相对路径或完整路径,否则会导致页面找不到错误

5 个答案:

答案 0 :(得分:7)

您可以使用menu_valid_path()函数。返回TRUE或FALSE基于1.菜单路径是否存在以及2.当前用户是否有权查看该项目。

你这样称呼它:

$item_exists = menu_valid_path(array('link_path' => $some_path));

$ some_path是您要测试的路径。

答案 1 :(得分:4)

如果您只想知道是否存在别名,请使用:

$path_exist = drupal_lookup_path('alias',$path);

但是如果您想知道系统路径或别名之一是否存在,请使用:

$path_exist = drupal_lookup_path('alias',$path) || drupal_lookup_path('source',$path);

答案 2 :(得分:2)

Refer to this URL for Drupal 8.

You can use:

\Drupal::service('path.alias_storage')->aliasExists('current_path', 'en')

And it will load "1" if alias exists in system.

答案 3 :(得分:1)

您也可以使用请求页面:http://api.drupal.org/api/function/drupal_http_request/6
如果出错,您将不会为空$ result->错误。

答案 4 :(得分:0)

从Drupal 8.8开始,Path Alias是一个内容实体。 所以我们可以使用

$pathStorage = \Drupal::entityTypeManager()->getStorage('path_alias');
$aliases = $pathStorage->loadByProperties(['alias' => $alias]);
// or 
// $pathStorage->loadByProperties(['path' => $path]);
$existingAlias = count($aliases) > 0;