我的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的内容。
- 在根目录下创建一个名为
/sales/
的目录 - 在
/sales/
中创建一个名为index.php
的文件 -
把这个放进去:
Header( "HTTP/1.1 301 Moved Permanently" ); Header( "Location: http://www.mysite.com/index.php?option=com_content&view=frontpage&Itemid=3220" );
然后:
- 删除您的
mod_rewrite
更改 - 认真尝试让你的客户端更新到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']中可用