Правило переписывания htaccess аналогично WordPress - PullRequest
0 голосов
/ 21 июня 2011

Хорошо, у меня есть скрипт в папке «потребление». Файл index.php автоматически создает список URL-адресов. Эти URL-адреса в формате:

/ прием / 4 / Westrop

У меня есть файл .htaccess во входной папке. Я хочу, чтобы он перенаправил URL на ФАЙЛ.

Приведенный выше пример станет /intake/redirect.php?id=4&name=Westrop

.

Вот что у меня есть:

DirectoryIndex index.php

Options All -Indexes

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)/(.*)$ /intake/redirect.php?id=$1&name=$2 [L]
</IfModule>

Но по какой-то причине, если я набираю / потребление или /intake/index.php, я получаю ошибку 404. По словам Firebug, он пытается взять «потребление» и превратить его в «потребление.php»

Есть идеи?

Ответы [ 2 ]

1 голос
/ 21 июня 2011

Поместите следующий код в файл .htaccess в корневой папке сайта:

RewriteEngine On
RewriteRule ^intake/(\d+)/([a-z0-9\-_]+)$ /intake/redirect.php?id=$1&name=$2 [NC,QSA,L] 

приписка Не используйте этот тип шаблона - ^(.*)/(.*)$ - в вашем случае для более длинных URL-адресов он будет работать не так, как вы ожидаете. Он будет соответствовать вашему URL-адресу .. но неправильно.

0 голосов
/ 21 июня 2011

Запустите ваш .htaccess с этой опцией:

Options +All -MultiViews -Indexes
...