2012-06-05 3 views
0

Мой сайт немного похож на 9gag или damnlol и т. Д. , когда пользователь посещает страницу товара, например: site.com/104-funny-thing , правило перезаписи перенаправляется на view.php? id = 104-funny-thing. Здесь URL-адрес лишается всего после первого '-'. Таким образом, мы остаемся с идентификатором только в этом случае: 104, и запрос получает элемент.условный .htaccess перенаправление - перенаправление на две разные страницы в зависимости от url

Вот Правило:

RewriteRule ^([A-Za-z0-9-]+)$ view.php?id=$1 

То, что я хочу, что тот же самый формат URL может быть использован, чтобы открыть профили пользователей, а также. Например: site.com/salman, этот URL должен открыть profile.php? Username = salman.

Я думал об этом через PHP. Где я могу использовать тот же файл, view.php, для обеих целей. Когда разбор URL-адреса будет выполнен, если я получу числовое значение, я бы включил страницу item.php и запрос и отобразил данные соответственно. Если он не численный, тогда я включаю страницу profile.php и покажу профиль. Это должно теоретически работать безупречно, но то, что я хотел попробовать, было то, что если бы был способ перенаправления с использованием .htaccess напрямую, я бы предпочел использовать эту опцию, так как предыдущий параметр требует дополнительной работы для решения некоторых проблем, которые решение вызывает.

Возможно, кто-то хорошо подходит для htaccess (код регулярного выражения?). Вот некоторые дополнительные объяснения:

  • Usernames может содержать цифры, но не только номера
  • Имя пользователя URL-адреса не могут содержать «-»
  • идентификаторы товара не может содержать алфавиты
  • URL-адреса 104-смешно, 104- и 104, все работы для view.php

Благодарим вас за помощь в продвинутых!

+0

Что делать, если пользователь выбирает числовое имя пользователя? – Mike

+0

Попробуйте придумать решение .htaccess самостоятельно и отправьте сообщение здесь, если у вас возникнут проблемы. – Ansari

+0

Пользователь не может иметь полностью числовое имя пользователя. Это не разрешено. – salmanhijazi

ответ

2
#article urls 
RewriteRule ^([0-9]+)(-.*)?$ view.php?id=$1 

#profile urls. 
RewriteRule ^([A-Za-z0-9]+)$ profile.php?username=$1 
+0

То, что мне нужно! Спасибо! : D – salmanhijazi

Смежные вопросы