2009-05-27 2 views
1

У меня есть несколько страниц на моем сайте, как и следовало ожидать..htaccess Перепишите вопрос

Например:

index.php submit.php view.php ID = л

Я хочу, чтобы эти переписан как

индекс/ отправить/ вида/л

?

Каков наилучший способ сделать это?

ответ

1

Способы обращения с ним через .htaccess Rewrite может вызвать небольшую головную боль. Это похоже на базовый ответ, но если вы не используете регулярные выражения, вы будете потеряны.

Однако есть несколько способов его обработки. Я предполагаю, что у вас есть только index.php, submit.php и view.php с ассоциированным идентификатором.

 
RewriteEngine On 
RewriteRule ^(index|submit|view)/(\d+)$ /$1.php?id=$2 
RewriteRule ^(index|submit|view)/(\d+)$ /$1.php 

Вот как это работает: Вы говорите .htaccess, чтобы включить Rewrite Engine. Шаг 2, вы даете сайту параметр, который сообщает ему, как это делается. Параметр в этом случае читает: В начале URL-адреса, после имени домена, проверьте наличие индекса, отправки или просмотра. Если они существуют, он будет искать идентификатор. Если оба они существуют, он вернет значение в PHP как /(index, submit, or view)?id=$id.

Второй вариант, если идентификатор не является жизнеспособным.

Это простой способ обращения с ним. Более сложный способ обработки было бы ...

 
RewriteEngine On 
RewriteRule ^([a-z]+)/?(\d+)?$ /$1.php?id=$2 

Это загрузит все, что написано в обычных алфавитных символах только верхний и нижний регистр букв, использовать его в качестве имени файла, а затем обнаруживает, если идентификатор даже необходимо - он будет загружаться без.

Вы должны обязательно включить некоторые защитные меры на своих линиях $_GET, чтобы возвращать ошибки, если имена ошибочны или не возвращают ничего ценного.

Вы должны поиграть с ним, исследовать регулярные выражения над горшком кофе и чем-то алкогольным (я считаю, что регулярное выражение является причиной 1-го употребления алкоголизма у современных программистов, но я могу ошибаться; -P ...) пока вы не найдете схему, которая удобно помещается в вашей системе.

В качестве побочного примечания вы можете иметь столько RewriteRules, сколько вам нужно, но они всегда обрабатываются сверху. Я понимаю, что это звучит как здравый смысл, но важно знать, когда отлаживается.

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