我正在尝试使用 mod_rewrite 仅将查询字符串保留在 url 中,并删除 index.php?p=。
例如,这个链接
http://domain.com/index.php?p=page-name-with-dashes
进入
http://domain.com/page-name-with-dashes.html
所有页面都是通过控制脚本 index.php 和查询 p=name 加载的,像这样
<?php
$page = isset($_GET['p']) ? $_GET['p'] : 'home';
...
require_once 'content-' . $page . '.php';
...
?>
我已经尝试了以下所有变体,但没有一个有效 - 有些给出 404 一些给出 500 错误。
#RewriteRule ^index.php?p=(.*) $1/
#RewriteRule ^([^/]+)/?$ /index.php?p=$1 [QSA,L]
#RewriteRule ^(.*)$ index.php?p=$1 [NC,L,QSA]
我究竟做错了什么?我不太了解 htaccess 规则,所以请原谅我的新手问题。