Я хочу, чтобы 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 с умом