Очистить URL с помощью PHP

Поэтому я пытаюсь создать чистую систему URL-адресов в PHP для изменения URL-адресов, подобных этому http://example.com/index.php?projects=05 : http://example.com/projects/05

До сих пор я выяснил, как использовать parse_url для сопоставления URL-адресов, которые выглядят как http://example.com/index.php/projects/05 но я не могу понять, как удалить «index.php» из URL. Есть ли способ использовать .htaccess для удаления index.php из строки url?

Я знаю, что это своего рода простая проблема, но после обширного поиска в Google я не могу найти решение.

Related of "Очистить URL с помощью PHP"

Вам нужно будет сделать это в Apache, используя mod_rewrite. Вам нужно будет перенаправить все URL-адреса на ваш index.php, а затем, возможно, используя parse_url, выяснить, что с ними делать.

Например:

 # Turn on the rewrite engine RewriteEngine On # Only redirect if the request is not for index.php RewriteCond %{REQUEST_URI} !^/index\.php # and the request is not for an actual file RewriteCond %{REQUEST_FILENAME} !-f # or an actual folder RewriteCond %{REQUEST_FILENAME} !-d # finally, rewrite (not redirect) to index.php RewriteRule .* index.php [L] 

Я использую следующий файл .htaccess для удаления части index.php URL-адреса.

 # Turn on URL rewriting RewriteEngine On # Installation directory RewriteBase / # Protect hidden files from being viewed <Files .*> Order Deny,Allow Deny From All </Files> # Allow any files or directories that exist to be displayed directly RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !favicon.ico$ RewriteRule .* index.php/$0 [PT] 

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

На самом деле вам не нужен php для этого, если вы можете создавать файлы .htaccess. Взгляните на http://corz.org/serv/tricks/htaccess2.php

Вы должны использовать mod rewrite в .htaccess для включения /index.php в /.

Концепция развязывания фактических файлов / папок с URL-адреса называется маршрутизацией . Многие фреймворки PHP включают такую ​​функциональность, в основном используя mod_rewrite . В PHP URL Routing есть хорошая запись в блоге, которая реализует простой автономный класс маршрутизатора.

Он создает отображение следующим образом:

 mysite.com/projects/show/1 --> Projects::show(1) 

Таким образом, запрошенный URL-адрес вызывает функцию show() вызываемого класса Projects с параметром 1 .

Вы можете использовать это, чтобы создавать гибкие сопоставления довольно URL-адресов для вашего PHP-кода.

Что-то вроде этого в вашем .htaccess:

 RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php [QSA,L] 

(Убедитесь, что модуль перезаписи включен)