Htaccess переписать правила? - PullRequest
       17

Htaccess переписать правила?

0 голосов
/ 25 августа 2011

, поэтому мой URL в настоящее время:

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 ? .. В любом случае, я пытался и не смог этого сделать, лол.

Что мне добавить, чтобы получить желаемый URL? Помощь очень ценится:)

1 Ответ

2 голосов
/ 25 августа 2011

Невозможно изменить имя параметра с помощью 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;
}
...