Как сделать перенаправление при вводе определенного URL? - PullRequest
1 голос
/ 26 марта 2012

У меня есть URL на моем сайте Joomla

http://www.mysite.com/index.php?option=com_content&view=frontpage&Itemid=3220

Мой клиент хочет, чтобы к нему обращались как

http://www.mysite.com/sales

Я использовал mod_rewrite, чтобы сделать это, он отлично работает. Но я хочу это, когда пользователь вводит

http://www.mysite.com/sales

должно достигать

http://www.mysite.com/index.php?option=com_content&view=frontpage&Itemid=3220

вместо того, чтобы просто показывать содержание этого URL.

Ответы [ 3 ]

1 голос
/ 26 марта 2012
  1. Создайте каталог под root с именем /sales/
  2. Создайте файл с именем index.php внутри /sales/ ...
  3. Поместите это в это:

    Header( "HTTP/1.1 301 Moved Permanently" ); 
    Header( "Location: http://www.mysite.com/index.php?option=com_content&view=frontpage&Itemid=3220" ); 
    

Тогда:

  1. Удалите ваши mod_rewrite изменения.
  2. Серьезно постарайтесь, чтобы ваш клиент обновился до 1.5.25, так как существует множество исправлений безопасности, начиная с базы кода 1.5.10.
1 голос
/ 26 марта 2012

получить текущий URL-адрес страницы, если это продажи, а затем перенаправить с заголовком местоположения

    function curPageURL() {
 $pageURL = 'http';
 if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
 $pageURL .= "://";
 if ($_SERVER["SERVER_PORT"] != "80") {
  $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
 } else {
  $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
 }
 return $pageURL;
}

и

header("Location: http://www.mysite.com/index.php?option=com_content&view=frontpage&Itemid=3220");

так:

$pageurl = curPageURL();

if ($pageurl == "http://www.mysite.com/sales") {
header("Location: http://www.mysite.com/index.php?option=com_content&view=frontpage&Itemid=3220");
}
0 голосов
/ 26 марта 2012

Я не знаю о возможностях Joomla

Но для обычного php-приложения я бы создал .htaccess в родительской папке.И перенаправил все вызовы в один файл (шаблон проектирования Front Controller)

Содержимое .htaccess будет

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?/$1 [QSA,L]
</IfModule>

Вся строка запроса будет доступна в $ _GET ['url«]

...