2013-08-02 4 views
0
#Create friendly URL 
RewriteRule ^$1-$2.php?$3=$4$ (.*)/(.*)/(.*)/(.*)/[L] 

Hello again stackoverflow!htaccess mod rewriting url отображает 404

Ток siteup моего сайта (назовем его site.com) имеет эту установку:

http://site.com/category/page/variable1/value1/variable2/value2/
http://site.com/category/page/variable1/value1/
http://site.com/category/page/
http://site.com/

Я хочу, чтобы переписать эти URLы, чтобы:

http://site.com/category-page.php?variable1=value1&variable2=value2
http://site.com/category-page.php?variable1=value1
http://site.com/category-page.php
http://site.com/

Код выше, является тот, который я пытался писать. Он не дает мне сообщение об ошибке сервера, но вместо этого просто не работает. Когда я перехожу на http://site.com/category/page/variable1/value1/variable2/value2/, он просто дает ошибку 404.

Помогите мне, ребята?

Заранее спасибо

+0

Регулятор и замена включены в ваш RewriteRule. Также вы представляете пример с шестью сегментами пути, но ваше правило допускает только четыре. И вы еще проверили примеры в http://stackoverflow.com/tags/mod-rewrite/info теге wiki? – mario

+0

http://stackoverflow.com/questions/1882694/mod-rewrite-pass-the-path-query-string-url-as-a-parameter – hungerstar

+0

@mario Это было в случае 2-го примера моей установки, поскольку Я просто тестировал первоначальное переписывание. – Thew

ответ

1

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

RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/ /$1-$2.php?$3=$4&$5=$6 [L] 
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+) /$1-$2.php?$3=$4 [L] 
RewriteRule ^([^/]+)/([^/]+)/?$ $1-$2.php [L] 
+0

Я больше не могу подключить свой файл index.php в корневой каталог. Как я могу это решить? – Thew

+0

Решил, имел отношение к другому файлу htaccess. Благодарю вас! – Thew