Я делаю это в файле htaccess .. для перезаписи url с другой страницы
Options +FollowSymLinks RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([a-zA-Z0-9_-]+)$ profile.php?username=$1 [QSA] RewriteRule ^([a-zA-Z0-9_-]+)/$ profile.php?username=$1 [QSA]
и это прекрасно работает ..
теперь мне нужно добавить еще как facebook
вы можете установить facebook.com/username
который: facebook.com/profile.php?username=
& вы можете поместить facebook.com/pagename, который: facebook.com/pages.php?username=
и отлично работает
с разных страниц ..
Мне нужно сделать вот так.
любая помощь ?!
RewriteRule ^([a-zA-Z0-9_-]+)$ profile.php?username=$1 [QSA] RewriteRule ^([a-zA-Z0-9_-]+)/$ profile.php?username=$1 [QSA] RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?username=$1 [QSA] RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?username=$1 [QSA]
Ваши шаблоны регулярных выражений совпадают одинаково, поэтому вам потребуется что-то, чтобы различать страницы и людей (или перенаправление на profile.php vs. index.php).
Вы можете сделать это одним из двух способов. Во-первых, вы можете перейти на одну страницу, назовем ее redirect.php. На этой странице вы можете проверить значение id и затем перенаправить. Так вот:
RewriteRule ^([a-zA-Z0-9_-]+)/?$ redirect.php?id=$1
В redirect.php вы захватываете $_GET['id']
и запускаете некоторый запрос против него, чтобы определить, является ли это страницей или человеком, а затем перенаправить с помощью чего-то вроде:
header("Location: profile.php?username=".$_GET['id']);
Если вы строго ищете материал, связанный с Facebook, вы можете использовать API-интерфейс графика вместо базы данных, чтобы определить, есть ли его идентификатор страницы или человека. (Не уверен, что он может существовать в обоих – но я думаю, что нет).
Если у вас нет базы данных или источника данных, чтобы определить, является ли ее страница или лицо, вам нужно добавить что-то в строки вашего URL, чтобы определить, например / pages / {pageid}, которые вы могли бы переписать свои правила чтобы:
RewriteRule pages/([a-zA-Z0-9_-]+)/?$ index.php?username=$1 # for pages RewriteRule ^([a-zA-Z0-9_-]+)/?$ profile.php?username=$1 # for people
Если вы не можете использовать что-то в своем URL-адресе и не имеете доступа к нему через базу данных, вам не повезло, так как вы нажмете два одинаковых шаблона.