我?page=about
在 index.php 的表单中使用 GET 方法调用(即“关于”是一个选择选项)。单击提交后,URL 将如下所示:
http://example.com/?page=about
但是我希望它看起来像这样:
http://example.com/about
但保持脚本(PHP)在 index.php 上工作(不要也不想有一个“关于”文件),即。发送表单后,我想在同一页面上使用 GET 值。我可以使 php 脚本工作,它反应很好,但 URL 重写根本不起作用。
我已经尝试了以下 htaccess 重写,但它没有做任何事情,URL 仍然如上。
我的 htaccess:
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ?page=$1 [L,QSA]
非常感谢您的帮助,因为我不知道为什么这不起作用。我在网上搜索过,每个人都指向这个规则,但它对我没有任何作用。
提前非常感谢!
编辑:
让我发布我使用的 php 代码,对不起,我错过了。我现在已经删除了该action
属性,因为我在浏览器中使用它,我知道在提交表单时会将我发送到相同的浏览器:
<?php
$page = $_GET['page'];
switch($page){
case 'about': echo 'I am me'; break;
case 'galery': echo 'Nice pictures here'; break;
}
?>
<body>
<form action="/" method="get">
<select name="page">
<option value="about">about</option>
<option value="galery">galery</option>
</select>
<input type="submit" value="Submit" />
</form>
</body>
编辑#2:
我必须添加action="/"
到表单标签才能使 anubhava 的解决方案起作用。