如何在输入特定url时进行重定向


How to do redirecting when a particular url is entered?

我的joomla网站上有一个url

http://www.mysite.com/index.php?option=com_content&view=首页&项目ID=3220

我的客户希望它作为访问

http://www.mysite.com/sales

我用mod_rewrite来做这件事,它工作得很好。但我希望当用户进入时

http://www.mysite.com/sales

它应该到达

http://www.mysite.com/index.php?option=com_content&view=首页&项目ID=3220

而不是仅仅显示该url的内容。

  1. 在根目录下创建一个名为/sales/的目录
  2. /sales/中创建一个名为index.php的文件
  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代码库以来,有很多安全修复

获取当前页面的url,如果是sales,则使用位置标头重定向

    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");
}

我不知道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['url']中可用