2013-12-07 5 views
1

В настоящее время я занимаюсь созданием огромного веб-сайта, но вместо обычных URL-адресов я бы хотел использовать URL-адреса Clean/User Friendly. Я искал, как я мог в основном адаптировать эти правила исправления Apache Mod для моих нужд, но я не мог найти решения для моей конкретной проблемы.Как создать чистый URL-адрес для каждой страницы с использованием .Htaccess?

Ниже вы можете прочитать цель, которую я хотел бы получить с помощью URL-адресов (я не буду писать имя домена каждый раз, просто представьте: http://www.example.com впереди URL-адресов).

/register/ ИЛИ /register --->/register.php (Он должен поддерживать обе вариации.)

Я на самом деле есть несколько файлов для регистрации, и я хотел бы, чтобы они были доступны с помощью «часть» слова, как :

/register/part1/ ИЛИ /register/part1 --->/register.php?part=1 (Он должен поддерживать обе вариации.)

кроме того, что если у меня есть больше, чем просто один varialbe запросов? (Как и «личная = 1»)

/register/part1/personal/ ИЛИ /register/part1/personal --->/register.php?part=1&personal=1

А что, если у меня есть многие из этих запросов, но я не могу определить все из них раньше? Любой из них можно ввести. (Как и "вещь, имя, работа, и т.д.")

/register/part1/personal/Nicky/ ИЛИ /register/part1/personal/Nicky --->/register.php?part=1&personal=1&name=Nicky

или любого рода изменений вы можете себе представить:

/register/part1/personal/thing/employee/ ИЛИ /register/part1/personal/thing/employee --->/register.php?part=1&personal=1&thing=1&job=employee

EDIT: Это то, что я пытался до сих пор, но он просто перенаправляет страницы на index.php:/

RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] 

Итак, я дал вам много примеров, чего бы я хотел достичь в основном. У меня может быть много других страниц, кроме «register.php», поэтому он не должен быть конкретным только для этой страницы. Я также хочу, что ОЧЕНЬ важно, что если кто-то идет, например: register.php?part=1, он должен перенаправить их на соответствующий URL-адрес Clean (конечно, на PHP).

Я также хотел бы спросить, что мне делать в конце PHP, чтобы все было хорошо? Я видел, что Wordpress имеет действительно отличное решение для этого, что довольно автоматизировано, и это выглядит великолепно!

Есть ли способы, чтобы кто-то мог объяснить мне, как создать отличное решение для решения этой проблемы? HTACCESS mod_rewrite? Я действительно был бы очень рад!

Пожалуйста, не ставьте этот вопрос как дубликат, потому что я действительно не нашел ничего конкретного для моего дела.

+0

Вместо того чтобы использовать неуклюжий файл Htaccess направьте все запросы через файл 'index.php' и пусть PHP обрабатывает маршрутизацию и перенаправление для вас, анализируя' REQUEST_URI' – PeeHaa

+0

. Хорошо знать все обширные требования. Пожалуйста, покажите нам свою собственную попытку решить эту проблему. – anubhava

+0

Я обновил свой пример, попробовав HTACCESS. –

ответ

2

Вы упомянули WordPress, который has something like this:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 

Что это делает перенаправить запрос, который не соответствует реальной файл или каталог в index.php сценария. Затем этот скрипт решит, какую страницу отобразить. Он сделает это, посмотрев на $_SERVER['REQUEST_URI'], который держит путь, как register/part1.

Было бы проще для вас, чтобы выяснить, на какую страницу, чтобы показать, используя этот метод, потому что в PHP есть много способов, чтобы разобрать эту строку пути, а затем сопоставить его функцию

0

Вы должны быть в состоянии построить чистые URL, как это от вашего HTAccess:

RewriteEngine On 
RewriteRule ^index\.html$ /index.php?pageID=Home [L] 
RewriteRule ^about-my-homepage\.html$ /index.php?pageID=About [L] 
RewriteRule ^contact-us\.html$ /index.php?pageID=Contact [L] 

первым является тот, который вы хотите, чтобы вывод («чистый» URL), второй тот, который вы действительно хотите открыть. Удачи!