2011-08-25 359 views
0

所以我的网址是目前:Htaccess重写规则?

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但仍accessable与search.php,所以当我创造我重写规则做我重写search.php或者只是search?..无论哪种方式,我已经尝试过,并没有完成它大声笑。

我应该添加什么我的所需的网址?非常感谢帮助:)

回答

2

用mod_rewrite改变参数名称是不可能的。达到你想要什么,最简单的方法是添加这些行的.htaccess:

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

和修改的search.php对s反应GET参数相同,因为它反应keyword

另一种方法是,以保持完整的.htaccess和index.php文件的顶部添加这些:

if (!empty($_GET['s'])) { 
    $_GET['keyword'] = $_GET['s']; 
    require __DIR__ . '/search.php'; 
    exit; 
} 
+0

唉唉,好吧,我照你的参数很容易的修改建议。谢谢:) – Jessica

+0

可以用mod_rewrite更改参数名称。 – 2011-08-26 05:19:08

+0

如何?你可以给一个例子或链接到一个? – Crack