2016-08-08 3 views
1

Я бы хотел использовать RewriteRule, но, похоже, не может его повесить.RewriteRule для SEO url's

Эти слои сайта:

http://domain.com/artists/artist-name/1/2/3/ 
http://domain.com/fairytales/fairy-tale-one/1/2/3/ 
http://domain.com/horrorstories/horror-story-six/1/2/3/ 

В основном, это реж до «/ 1 /» в URL, который должен быть крутое название SEO URL.

Я понял, что это должно быть что-то вроде этого, чтобы переписать пропел.

RewriteEngine On 
RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 

RewriteRule ^/artists/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ index.php?artist_id=$1&cat_id=$2&style_id=$3 
RewriteRule ^/fairytales/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ index.php?story_id=$1&cat_id=$2&style_id=$3 
RewriteRule ^/horrorstories/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ index.php?story_id=$1&cat_id=$2&style_id=$3 

.htaccess работает с Apache 2.4.23 на сервере CentOS, который я использую.

После многих 500 ошибок и теперь слишком много 404, я наконец спрашиваю.

+0

Просто используйте маршрутизации библиотеки, есть много, чтобы выбрать из, и все они будут более многофункциональный и надежный, чем ваш собственный поделок версии: https://www.google.co.uk/webhp? sourceid = chrome-instant & ion = 1 & espv = 2 & ie = UTF-8 # q = php% 20router – Steve

+0

Я знаю! Дело в том, что я не могу заставить его работать. – KJS

ответ

3

Ваши шаблоны регулярных выражений не соответствуют заданным URL-адресам. Попробуйте эти правила:

RewriteEngine On 

RewriteRule ^/?artists/[\w-]+/([\w-]+)/([\w-]+)/([\w-]+)/?$ index.php?artist_id=$1&cat_id=$2&style_id=$3 [L,QSA,NC] 

RewriteRule ^/?fairytales/[\w-]+/([\w-]+)/([\w-]+)/([\w-]+)/?$ index.php?story_id=$1&cat_id=$2&style_id=$3 [L,QSA,NC] 

RewriteRule ^/?horrorstories/[\w-]+/([\w-]+)/([\w-]+)/([\w-]+)/?$ index.php?story_id=$1&cat_id=$2&style_id=$3 [L,QSA,NC] 
+1

Я думаю, что вы только что сделали мой год @anubhava! Позвольте мне проверить еще кое-что здесь. – KJS

+0

Это слишком здорово! Ты заработал! Могу ли я также спросить, как это сделать, если говорить больше переменных? Возможно, возможно, бесконечные переменные? – KJS

+1

Извините, нет бесконечного решения переменной магии. Для очень сложного случая рассмотрим использование [Front Controller] (https://en.wikipedia.org/wiki/Front_controller), но для добавления 1 или 2 новых переменных можно разработать, используя правила перезаписи, как указано выше. – anubhava

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