我想使用.htaccess在php中创建一个漂亮的规则。
类似于localhost/search/name
,而不是像search?q=name
那样使用普通的PHP方式。但我坚持实施它,因为我的所有页面现在都返回error 404
,我不知道为什么。
这是我的.htaccess文件:
RewriteEngine on
RewriteRule ^localhost/?$ search.php?name=$1 [QSA]`
这是我的search.php文件:
<?php
echo $_GET['name'];
?>
因此,当我访问localhost/search/myname
之类的内容时,会返回error 404
我做错了什么?
答案 0 :(得分:1)
您首先要将/ search /作为重写规则的一部分包含在内,然后我还建议在QSA之后添加“L”标志,以便规则是被调用时处理的最后一条规则。 / p>
然后,您希望从URL中捕获名称,并将其作为get参数传递给视图。
我还从URL中省略了localhost,因为您不需要将其作为目标。
试试这个:
RewriteRule ^search/(.*)$ search.php?name=$1 [QSA,L]