尝试在php中使用.htaccess创建一个漂亮的URL时出错404

时间:2018-03-19 12:43:24

标签: php .htaccess

我想使用.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

我做错了什么?

1 个答案:

答案 0 :(得分:1)

您首先要将/ search /作为重写规则的一部分包含在内,然后我还建议在QSA之后添加“L”标志,以便规则是被调用时处理的最后一条规则。 / p>

然后,您希望从URL中捕获名称,并将其作为get参数传递给视图。

我还从URL中省略了localhost,因为您不需要将其作为目标。

试试这个:

RewriteRule ^search/(.*)$ search.php?name=$1 [QSA,L]