Создать обработчик Catch-All в PHP?

Я хочу, чтобы PHP-файл улавливал и управлял тем, что произойдет, когда пользователи посещают:

http://profiles.mywebsite.com/ sometext

sometext меняется.

Например, может быть, это может быть john и т. Д., Тогда я хочу, чтобы PHP-файл обрабатывал запросы из этой структуры.

Моя главная цель – предоставить определенному файлу PHP перенаправить пользователей моего сайта в соответствующие профили, но их профили отличаются от этой структуры URL. Я нацелен на то, чтобы предоставить пользователям удобные для понимания URL-адреса профиля.

Спасибо тем, кто ответит!

В конфигурационных файлах Apache [Директивы VirtualHost или Directory] или в файле .htaccess введите следующую строку:

Options -MultiViews <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L,NC,QSA] </IfModule> 

Он будет автоматически перенаправлять все входящие запросы, которые не соответствуют действительному имени файла или каталогу ( RewriteCond в приведенном выше коде, убедитесь в этом), в файл index.php. Кроме того, как вы видите, опция MultiViews также должна быть отключена для перенаправления на работу – она, как правило, конфликтует с этими двумя RewriteCond , которые я там RewriteCond .

Внутри index.php вы можете получить доступ к данным REQUEST_URI через переменную $_SERVER['REQUEST_URI'] . Вы не должны передавать URI через GET , так как это может загрязнять ваши данные Query-String нежелательным образом, поскольку параметр [QSA] в нашем RewriteRule активен.

Вы должны использовать правило перезаписи.

В apache (.htaccess) что-то вроде этого:

 <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ /index.php?url=$1 [QSA,L] </IfModule> 

Затем в вашем index.php вы можете прочитать $ _GET ['url'] в своем php-коде.

Вы можете использовать файл .htaccess ( http://httpd.apache.org/docs/1.3/howto/htaccess.html ), чтобы переписать свой URL-адрес на что-то вроде profiles.websites.com/index.php?page=sometext. Затем вы можете делать то, что хотите, с sometext в index.php.

Очевидным способом сделать это будет через 404 errorDocument – сэкономить все, что возится с mod_rewrite.

Если вы не слышали о MVC, время, когда вы его слышите, начинайте с CodeIgniter, его простейшего и довольно быстро, используйте контроллер по умолчанию, и вы можете иметь URL-адреса, такие как
domain.com/usernam/profile
domain.com/usernam/profile/edit
domain.com/usernam/inbox
domain.com/usernam/inbox/read/messageid Или используйте .htaccess с умом