2014-12-03 3 views
-1

Я видел, что веб-сайты имеют страницы профиля, которые делают такие вещи, как «http://www.example.com/myusername/» показать человека с именем пользователя «myusername's». Мне было интересно, как это сделать?Как сделать переадресацию каталога

Я видел примеры того, как это сделать с помощью htaccess, но он выполняет полную переадресацию, не позволяя отправлять данные, получать данные и т. Д. Как я могу это сделать?

+0

' .htaccess' - отличное место для начала. Пожалуйста, покажите содержимое вашего файла '.htaccess' и опишите конкретно, что вы хотите, и что не так. – showdev

+0

Как я уже сказал, у меня нет опыта в этом, и я видел примеры использования предварительно созданных папок, например, создание/возобновление/переход к resume.pdf и т. Д. – user3894475

ответ

2

Используйте .htaccess's mod_rewrite возможность создавать перезаписи, которые будут содержать строку запроса и/или размещенные данные. Быстрый пример (из CodeIgniter):

RewriteEngine on 
RewriteCond $1 !^(index\.php|[Javascript/CSS/Image root Folder name(s)]|robots\.txt) 
RewriteRule ^(.*)$ /index.php/$1 [L] 

Это будет означать, что все запросы идут к index.php и ваш index.php скрипт будет установка разобрать этот URL в надлежащий класс и/или функции. Это позволяет использовать единую точку входа, которая может управляться системой. Это используется всеми основными системами: от Wordpress до Magento до Laravel 4 до CodeIgniter.

+0

500 Внутренняя ошибка сервера Я скопировал это именно так вы отправили его, и я понял. Может быть, у меня нет файла robots.txt? – user3894475

+0

Mod_rewrite - это модуль Apache, который необходимо настроить на сервере. Что касается не дублирования контента, посмотрите: http://stackoverflow.com/a/3131259/3525315 –

0

.htaccess позволяет «отправлять» данные (в правильном слове будут GET) в querystring, используя стиль, подобный каталогу. Необходимо активировать RewriteEngine, а затем написать правило, чтобы преобразовать запрос, ожидаемый вашей страницей в стиль sintax в стиле каталога, чтобы написать эти правила, вам нужно использовать какое-то регулярное выражение для сопоставления элементов в URL-адресе, которые будут распознаны как переменные и соответствующие значения вашего запроса.

Например, , если хотите переписать строку запроса следующим образом:

www.sitename.com/showimages.php?album=sea&photo=mysurf  

в запросе, как это:

www.sitename.com/sea/mysurf 

вы должны написать правило секвенции:

RewriteEngine on 
RewriteRule ^([a-z0-9]+)/([a-z0-9]+)/?$ /showimages.php?album=$1&photo=$2 [NC,L]  

здесь интересный и простой путеводитель по ".htaccess URL переписывания" http://edward-designer.com/web/htaccess-url-rewrite-simplified/

Я извиняюсь для моего плохого английского

Надеюсь, это поможет

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