Каков наилучший способ сделать это имя? - PullRequest
1 голос
/ 20 января 2010

ок, предположим, у меня есть страница php имеет это имя name.php? get = и имеет переменную с именем get Хорошо как я могу сделать так, чтобы это выглядело как это имя? get =

Ответы [ 5 ]

6 голосов
/ 20 января 2010

Если вы используете apache, mod_rewrite - это один из способов. Существует целая куча трюков mod_rewrite здесь .

3 голосов
/ 20 января 2010

Я бы серьезно пересмотрел перед использованием (или чрезмерным) mod_rewrite.

Почти во всех моих проектах я использую простую переписку модов в .htaccess:

RewriteEngine On

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f

RewriteRule ^.*$ ./

AddHandler php5-script .php

Это говорит серверу пересылать все страницы в / (index.php), если файл не существует иным образом.

В корневом каталоге у меня есть папка "views" со всеми страницами, которые я использую. Например. файл, используемый для / home, фактически был бы /views/home.php. Однако в index.php у меня есть скрипт, который анализирует URL-адрес пользователя, проверяет файл и включает его.

$page = substr($_SERVER['REQUEST_URI'], 1);
if(!$page) :
    header("Location: /home");
if(file_exists("views/$page.php")) :
    include "views/$page.php";
else :
    include "views/$page.php";
endif;

Это создает переменную с именем $ page, которая хранит значение всего в URL после имени домена. Я использую функцию substr () в URI запроса, чтобы избавиться от косой черты (/) в URL.

Если переменная пуста, например, если пользователь просто находится в http://example.com или http://example.com/, то он перенаправляет их в / home, где скрипт затем проверяет наличие файла home.php внутри из папки просмотров. Если этот файл существует, он включает его и отображает для пользователя.

Иначе, скрипт будет просто включать страницу 404, сообщающую пользователю, что файл не существует.

Надеюсь, это поможет вам, и если вам понадобятся дальнейшие объяснения, я буду рад помочь!

3 голосов
/ 20 января 2010

Я думаю, что вы хотите переписать URL-адрес на стороне клиента, который будет включать mod_rewrite.

На маршруте вашего сайта создайте файл с именем .htaccess и поместите в него следующий код:

RewriteEngine on
RewriteRule ^name?get=(.*) /name.php?get=$1

Теперь, когда вы наберете http://www.example.com/name?get=something,, оно будет фактически прозрачно для вас http://www.example.com/name.php?get=something.

1 голос
/ 20 января 2010

Если вы хотите создать ссылки, используя переменную '$ get', вы можете создать ссылку следующим образом:

<a href="name.php?get=$get>Link</a>

Или, если вы хотите получить значение переменной строки запроса, вы можете использовать это:

$get = $_GET['get']

1 голос
/ 20 января 2010

Насколько я мог понять ваш вопрос, вы не можете удалить расширение файла, потому что иначе оно не запустится. Другими словами, вы не можете изменить:

name.php?get=

в

name?get=

Но если вы хотите создать ссылки со значениями строки запроса, вы можете поместить их в гиперссылки следующим образом:

<a href="name.php?get=whatever">Click here !!</a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...