Лучше htaccess'ing? - PullRequest
       19

Лучше htaccess'ing?

1 голос
/ 18 апреля 2011

Есть ли более эффективный способ сделать ниже? Я не могу найти четкие решения онлайн.

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

RewriteRule ^([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/item/([0-9\-]+)/([a-zA-Z0-9\-]+)/$  index.php?level1=$1&level2=$2&level3=$3&articleID=$4 [L]

RewriteRule ^([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/item/([0-9\-]+)/([a-zA-Z0-9\-]+)/$  index.php?level1=$1&level2=$2&level3=$3&articleID=$4 [L]

RewriteRule ^([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/item/([0-9\-]+)/([a-zA-Z0-9\-]+)/$  index.php?level1=$1&level2=$2&articleID=$3 [L]

Если я хочу добавить возможность mediaID для каждого, нужно ли дублировать все 3, а затем добавить .../media/([0-9\-]+)/$ и ...&mediaID=$x? Пример URL-адреса: /directors/item/16/nicholas-barker/showreel/media/111/

1 Ответ

0 голосов
/ 19 апреля 2011

Может быть, вы можете попробовать это. У меня есть некоторые проблемы, чтобы понять, хотите ли вы, но:

RewriteRule ^([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)(?:/([a-zA-Z0-9\-]+)(?:/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+))?)?/item/([0-9\-]+)/([a-zA-Z0-9\-]+)/media/([0-9\-]+)/$ index.php?level1=$1&level2=$2&level3=$3&level4=$4&level5=$5&articleID=$6&articleSubId=$7&mediaID=$8 [L]

Переменная, которая не существует, будет просто пустой. (Вам придется проверить это в index.php). Между прочим, ваш $ x кажется мне непоследовательным. Вы не используете одни и те же части URL для идентификатора статьи и т. Д. Поэтому вам нужно немного настроить их в моем выражении (я сделал сильное предположение относительно вашей архитектуры.

...