2012-03-26 48 views
1

我有一個網址上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的內容。

+0

哪個版本的Joomla!? – Craig 2012-03-26 08:11:18

+0

您爲什麼要重定向到基本URL? Joomla的SEF支持一旦啓用(以友好的方式自動化mod_rewrite)將執行路由。它不會重定向到非SEF版本,因爲那樣會打敗對象。 – pharalia 2012-03-26 08:11:19

+0

@cppl joomla版本1.5。10 – 2012-03-26 08:18:21

回答

1
  1. 下創建根目錄名爲/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代碼庫以來有很多安全修復程序。
+0

mod_rewrite和mod_redirect是否有區別? – 2012-03-26 09:23:25

+0

這真的需要一個新的問題,但很快:'mod_rewrite'是一個更強大的靈活選項,而['mod_redirect'不存在] [1],'重定向'是'mod_alias'的指令,它更簡單,但缺乏處理URL屬性的能力等 - 「重定向」通常是服務器上較輕的負載。 [1]:http://httpd.apache.org/docs/2.2/mod/ – Craig 2012-03-26 09:56:59

1

得到當前頁面的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

我不知道的Joomla功能

但是對於一個正常的php應用程序,我會在父文件夾中創建.htaccess的 。並重定向到一個文件中的所有電話(前端控制器設計模式)

中的.htaccess的內容將是

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

所有的查詢字符串將在$ _GET [「網址」]