我正在尝试使用.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”
如何从原始网址输出(。*)的内容。
答案 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]