Как обрабатывать URL без указания параметров - PullRequest
1 голос
/ 15 сентября 2009

Мне было интересно, смогу ли я обработать URL-адрес без указания параметров. Например: http://www.example.com/Sometext_I_want_to_process

Я не хочу использовать: http://www.example.com/index.php?text=Sometext_I_want_to_process

Сайт должен перенаправить на другую страницу после обработки.

Какой у меня выбор языка?

Ответы [ 2 ]

3 голосов
/ 15 сентября 2009

Я бы предложил использовать apache mod_rewrite (аналогичная функциональность присутствует на других веб-серверах) для перезаписи URL-адреса, чтобы он стал параметром. Например, с параметром text, который вы используете, вы можете использовать следующие правила mod_rewrite, чтобы получить параметр.

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico # Want favicon.ico to work properly
RewriteRule ^(.*)$ index.php?text=$1 [L,QSA]

Затем вы просто получаете доступ к параметру в скрипте, как обычно.

<?php     
$stuff = $_GET['text'];
// Process $stuff 
0 голосов
/ 15 сентября 2009

Вы можете делать такие вещи, используя Apache mod_rewrite.
Obvisouly, это означает, что он должен быть включен - что не так часто по умолчанию.

Например, на веб-сайте я использую это в .htaccess файле:

RewriteEngine on
RewriteCond %{REQUEST_URI}  !^/index.php
RewriteRule ^(.*)$ /index.php?hash=$1   [L]

Это перенаправляет все, как www.mysite.com/152 на www.mysite.com/index.php?hash=152

И тогда в моем PHP-коде я могу просто использовать $_GET:

if (isset($_GET['hash'])) {
    if (is_numeric($_GET['hash'])) {
        // Use intval($_GET['hash']) -- I except an integer, in this application
    }
}

В вашем случае вы, вероятно, захотите заменить "hash" на "text", но это уже должно помочь вам приблизиться к решению; -)

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