Как мне удалить "?" в строке запроса с mod_rewrite в htaccess? - PullRequest
0 голосов
/ 14 марта 2012

Я борюсь с (как мне кажется, должно быть) довольно простой задачей mod_rewrite.По сути, мне нужно удалить «?»во всех строках запроса.Должен отметить, что это странное php-приложение, в котором есть только имена (без значений) для строки запроса.Итак, мне нужно это:

http://mysite.com/?cheese-is-tasty

, чтобы стать:

http://mysite.com/cheese-is-tasty

Просто чтобы было ясно, я хочу, чтобы пользователь печатал URL без "?".

Мои попытки и поиск в Google привели меня к следующим .htaccess добавлениям в файл:

RewriteEngine on
RewriteRule (.*) \?$1

Я близок к правильному решению?

Ответы [ 3 ]

1 голос
/ 14 марта 2012

Вот часть .htaccess:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L,QSA]

А затем вам нужно проанализировать URL с помощью PHP:

<?php
    $requestURI = explode("/", $_SERVER["REQUEST_URI"]);
    $scriptName = explode("/",$_SERVER["SCRIPT_NAME"]);

    for($i= 0;$i < sizeof($scriptName);$i++)
            {
          if ($requestURI[$i] == $scriptName[$i])
                {
                    unset($requestURI[$i]);
                }
          }         
    $route = array_values($requestURI);

  /* for http://www.domain.com/page/view/1 the variable will be :
    Array ( [0] => page [1] => view [2] => 1) */

    $page = $route[0];


?>

И с помощью $ page вы можете загрузить любую нужную вам страницу.загрузить.Более подробный источник: http://www.phpaddiction.com/tags/axial/url-routing-with-php-part-one/

1 голос
/ 14 марта 2012

Я сам использую следующее:

RewriteRule ^(.*)$ index.php?page=$1 [L]

А затем в index.php, что-то вроде:

<?php
$page = $_GET['page'];
...
?>
0 голосов
/ 14 марта 2012

Если вы хотите просто переписать некоторые конкретные страницы / URL, вы можете посмотреть мое решение здесь: https://stackoverflow.com/a/9693939/1112665

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...