Могу ли я переписать мои URL-адреса, как это, и это хорошая идея?

Возможно ли перезаписать (Apache Mod-Rewrite) URL из этого:

http://www.example.com/view.php?t=h5k6 к этому http://www.example.com/h5k6

Причина такой перезаписи заключается в том, что URL-адрес должен быть очень коротким (немного похожим на крошечную службу URL-адреса).

Будет ли новый URL-адрес удаляться на мою страницу view.php? Может ли он еще использовать супер глобальный массив GET ( $_GET ) для доступа к переменной t ? Я все еще хочу, чтобы моя страница index.php отображалась на этом сайте http://www.example.com .

Я также благодарен за комментарии к эффектам, которые могут возникнуть, поскольку я немного нуб. 🙂

Спасибо всем

Терминология mod-rewrite работает по-другому. Запросы будут опубликованы следующим образом: http://www.example.com/h5k6 и будут переписаны по http://www.example.com/view.php?t=h5k6 . Таким образом, ваши PHP-скрипты могут отвечать на запросы, как если бы они были отправлены как параметры GET, но пользователи видят URL-адреса гораздо более дружелюбным образом.

Поэтому вам не нужно менять скрипты PHP, и вы все равно можете получить доступ к параметру t из массива GET.

В вашем случае правило будет выглядеть так:

 RewriteRule ^/(.*) /view.php?t=$1 

Вы можете быть более конкретным относительно того, что вы принимаете (а не только выражения catch-all .* ). Кроме того, вы можете захотеть исключений из этого правила, если у вас есть другие страницы в этом каталоге, кроме view.php.

Попробуйте один из них:

 # /view.php?t=h5k6 externally to /h5k6 RewriteCond %{THE_REQUEST} ^GET\ /view\.php RewriteCond %{QUERY_STRING} ^([^&]*&)*t=([^&]+)&?.*$ RewriteRule ^/view\.php$ /%2 [L,R=301] # /h5k6 internally to /view.php?t=h5k6 RewriteRule ^/([0-9a-z]+)$ view.php?t=$1 [L] 

Да, это определенно возможно и будет иметь именно тот эффект, который вы описываете. Однако ваша терминология обратная. «Короткий» URL-адрес – это тот, который отправляет исходный код браузера на сервер, и он переписывается в более длинную версию, которая затем фактически обрабатывается, и приводит к запросу PHP.

В значительной степени единственный улов заключается в том, что если использовать это небрежно, это может привести к тому, что поисковые системы индексируют оба URL и рассматривают их дублирующийся контент, что плохо для вашего рейтинга. С одной стороны, этого можно избежать (и должно) избежать, никогда не публикуя «длинную» версию в любом месте (т.е. все внутренние ссылки на сайте имеют «короткий» формат). Однако, поскольку вы можете публиковать их случайно (что может случиться легко), вы также должны использовать ссылку rel = "canonical", чтобы сообщить поисковым системам URL, который вы хотите проиндексировать ваши страницы.