2016-11-28 2 views
1

Я хочу заменить имя файла из URI. Мне нужно это заменить url на веб-странице. Пример: URL страницы:

https://www.domain.com/...../india-hotels/dun-hotels/abc.php 

Мой код

echo $uri=$_SERVER['REQUEST_URI']; 

возвращает

...../india-hotels/dun-hotels/abc.php 

Но я не нужен "abc.php". Мне нужно вот так

...../india-hotels/dun-hotels/ 

Это должно быть сделано с использованием php, потому что я буду использовать его на своей веб-странице. Пожалуйста, предложите мне решить эту проблему.

+3

ваши последние 3 URLs то же самое – matiaslauriti

+0

Это можно сделать также .htaccess. –

ответ

0

Включить rewrite модуль в apache.

Запись этого в файле .htaccess

RewriteCond %{THE_REQUEST} /index\.php [NC] 

RewriteRule ^(.*?)index\.php$ /$1 [L,R=301,NC,NE] 
0

Я решил это, как этот

$uri_ar=array(); 
$uri=($_SERVER['REQUEST_URI']); 

if(strpos($uri,'.php')){  
    $uri_ar=explode('/',$uri); 

    array_pop($uri_ar); 
    $uri=implode('/',$uri_ar); 

} 
1

Вы можете использовать простой, регулярные explode & implode, чтобы получить то, что вы хотите, как показано Ниже приведен фрагмент. Quick-Test Here.

<?php 

     // ASSUMING THAT $_SERVER['REQUEST_URI']; RETURNS THE STRING BELOW: 
     $uri = /*$_SERVER['REQUEST_URI'];*/ "...../india-hotels/dun-hotels/abc.php"; 
     $parts = explode("/", $uri); 
     array_pop($parts); 
     $uri = implode("/" , $parts) . "/"; 
     echo $uri; //<== YIELDS::: ...../india-hotels/dun-hotels/ 

Альтернативно и даже предпочтительно, Вы можете использовать basename() функции в сочетании с str_replace() для достижения той же цели:

<?php 

     // ASSUMING THAT $_SERVER['REQUEST_URI']; RETURNS THE STRING BELOW: 
     $uri  = /*$_SERVER['REQUEST_URI'];*/ "...../india-hotels/dun-hotels/abc.php"; 
     $baseName = basename($uri); 
     $uri  = str_replace($baseName, "", $uri); 
     echo $uri; //<== YIELDS::: ...../india-hotels/dun-hotels/ 

В сжатой форме:

<?php 

     $uri  = /*$_SERVER['REQUEST_URI'];*/ "...../india-hotels/dun-hotels/abc.php";; 
     $uri  = str_replace(basename($uri), "", $uri); 
     echo $uri; //<== YIELDS::: ...../india-hotels/dun-hotels/ 
Смежные вопросы