.htaccess重定向或PHP更改

时间:2011-01-21 03:46:16

标签: php class function .htaccess

我网站的主要导航编码如下:

<li><a href="index.php?pageID='.$key.'">'.$value.'</a></li>'."\n";

但我希望链接的网址看起来像domain.co.nz/pagename,而不是domain.co.nz/index.php?pageId=pagename

你会如何推荐我做到这一点?

2 个答案:

答案 0 :(得分:1)

这样的事情应该有效:

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?pageID=$1

第一行打开mod_rewrite。第二行将基本URL设置为/(这很烦人,但您必须将其设置为您正在处理的基本路径)。第三行和第四行确保请求不作为文件或目录存在。最后一行是真正的魔力;基本上它搜索“任何东西”,捕获它在$ 1中找到的东西,并“重写”到index.php的URL?pageID = $ 1。如果你学习使用正则表达式,你也可以做更复杂的事情。

答案 1 :(得分:0)

是的,您可以使用.htaccess RewriteRule来完成此操作。在.htaccess文件中,包括:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) index.php?pageId=$1

这意味着:

如果REQUEST_FILENAME不是有效文件,请将整个网址重定向到index.php?pageId= 整个网址

然后,您将导航更改为:

echo "<li><a href="/'.$key.'">'.$value.'</a></li>'."\n";

修改:我将Trivikrtam的编辑内联移动,见上文。 RewriteRule应该是index.php?pageId=$1而不是/index.php?pageId=$1。谢谢@Trivikrtam!