.htaccess重写输出不需要的内容。我认为?

时间:2010-03-18 00:02:15

标签: .htaccess mod-rewrite

我正在尝试使用.htaccess重写网址。我在Apache 2.2.15版本上运行。

.htaccess的内容:

RewriteEngine on
RewriteRule cars/(.*) cars/member_page.php?user=$1
RewriteRule cars/(.*)/ cars/member_page.php?user=$1

member_page.php的内容:

<?php
echo $_GET[user];
?>

输入浏览器的网址:

http://www.mydomain.com/cars/user1

浏览器输出字符串“member_page.php”而不是“user1”

如何从原始网址输出(。*)的内容。

2 个答案:

答案 0 :(得分:0)

首先,它是$_GET['user'],而不是$_GET[user](请注意引号)。关于你的mod_rewrite规则:

RewriteEngine On
RewriteRule cars/(.*) cars/member_page.php?user=$1 [L]
RewriteRule cars/(.*)/ cars/member_page.php?user=$1 [L]

L表示要应用的最后一条规则。

答案 1 :(得分:0)

此格式的问题:

RewriteEngine on
RewriteRule cars/(.*) cars/member_page.php?user=$1 [L]
RewriteRule cars/(.*)/ cars/member_page.php?user=$1 [L]

原来我正在改装汽车/无论是汽车/ member_page.php。这会产生重写到重写所在目录的问题。

所以

cars/user1

被重写为

cars/member_page.php/user=member_page.php

使用第二次重写的内容作为最终信息重写了两次。解决方案是将member_page.php移动到另一个目录。

RewriteEngine on
RewriteRule cars/(.*) memberscars/member_page.php?user=$1 [L]
RewriteRule cars/(.*)/ memberscars/member_page.php?user=$1 [L]