【问题标题】:Htaccess rewrite rules?Htaccess重写规则?
【发布时间】:2011-11-03 08:22:00
【问题描述】:

所以我的网址目前是:

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 被重写为 search 但仍然可以使用 search.php 访问,所以当我创建我的重写规则时,我是重写 search.php 还是只重写 search ?..无论哪种方式我都尝试过但未能完成哈哈。

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

【问题讨论】:

    标签: .htaccess rewrite clean-urls friendly-url


    【解决方案1】:

    使用 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;
    }
    

    【讨论】:

    • 啊,好吧,我按照你的建议做了,改变参数很容易。谢谢你:)
    • 可以使用 mod_rewrite 更改参数名称。
    • 怎么样?你能举个例子或链接吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多