0

所以我的网址目前是:

http://www.mywebsite.com/search.php?keyword=stack+overflow

我希望它可以通过以下方式访问:

http://www.mywebsite.com/?s=stack+overflow

现在我还实现了 .php 文件的重写,如下所示

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php

我现在有点困惑,因为search.php正在重写为 justsearch但仍然可以使用search.php,所以当我创建我的重写规则时,我是重写search.php还是只是search?.. 无论哪种方式我都尝试过但未能完成它,哈哈。

我应该添加什么来获得我想要的网址?非常感谢您的帮助:)

4

1 回答 1

2

无法使用 mod_rewrite 更改参数名称。实现您想要的最简单的方法是将这些行添加到 .htaccess:

RewriteCond %{QUERY_STRING} ^s=
RewriteRule .? search.php [L]

并修改 search.php 以响应s获取与响应相同的参数keyword

另一种方法是保持 .htaccess 完整并在 index.php 的顶部添加这些:

if (!empty($_GET['s'])) {
    $_GET['keyword'] = $_GET['s'];
    require __DIR__ . '/search.php';
    exit;
}
于 2011-08-25T18:57:19.690 回答