Я хочу, чтобы файл PHP зависел и управлял тем, что произойдет, когда пользователи посещают:
http://profiles.mywebsite.com/ SOMETEXT
sometext изменяется.
например. Это может быть someuser, это может быть john и т.д., Тогда я хочу, чтобы PHP файл обрабатывал запросы из этой структуры.
Моя основная цель состоит в том, чтобы некоторый PHP файл перенаправлял пользователей моего сайта на их соответствующие профили, но их профили отличаются от этой структуры URL. Я нацелен на то, чтобы предоставить моим пользователям несколько удобных для понимания URL-адресов профиля.
Спасибо тем, кто ответит!
Ответ 1
В конфигурационных файлах 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
, которые я там помещал.
Внутри index.php вы можете получить доступ к данным REQUEST_URI
через переменную $_SERVER['REQUEST_URI']
. Вы не должны передавать URI через GET
, так как это может загрязнять ваши данные Query-String нежелательным образом, поскольку параметр [QSA]
в нашем RewriteRule активен.
Ответ 2
Вы должны использовать правило перезаписи.
В 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-коде.
Ответ 3
Вы можете использовать файл .htaccess(http://httpd.apache.org/docs/1.3/howto/htaccess.html), чтобы переписать свой URL-адрес на что-то вроде profiles.websites.com/index.php? page = sometext. Затем вы можете делать то, что хотите, с sometext в index.php.
Ответ 4
Очевидным способом сделать это можно было бы с помощью 404 errorDocument - сэкономить все, что возится с mod_rewrite.
Ответ 5
Если вы не слышали о MVC, время, когда вы его слышите, начинайте с CodeIgniter, простейшим и довольно быстрым, используйте контроллер по умолчанию, и у вас могут быть URL-адреса, например,
domain.com/usernam/profile
domain.com/usernam/profile/edit
domain.com/usernam/inbox
domain.com/usernam/inbox/read/messageid
Или используйте .htaccess с умом