2015-05-27 4 views
0

Я не уверен, почему mod_rewrite.c не правильно Pathing ссылкуправила перезаписи не подхватили сервером

Пример URL

http://developer.prodev/dev_www_trunk/justink/public_html/search/manufacturer/hewlett-packard

Перепишите двигателя

http://developer.prodev/dev_www_trunk/justink/public_html/search/index.php?advanced=0&manufacturer_rewrite=hewlett-packard

Я проверил мои правила перезаписи на htaccess tester

rewrite_result

Но это не тот же самый результат, я получаю в моем error_log.log, который перенаправляет на justink/поиск/производитель/... (public_html не вступает в переписывание).

# dev_www_trunk/justink/public_html/search/manufacturer/hewlett-packard 
RewriteRule ^(dev_[^/]*)/justink/public_html/search/manufacturer/?(.*)$ /$1/justink/public_html/search/index.php?advanced=0&manufacturer_rewrite=$2%{QUERY_STRING} [L] 

ответ

1

Из бревен:

'^(dev_[^/]*)/justink/public_html/search/manufacturer/?(.*)$' to uri 'search/manufacturer/hewlett-packard' 

Вы должны много информации префикса в своем регулярном выражении. Как вы можете видеть, что URL предоставляется на ваше регулярное выражение только

'search/manufacturer/hewlett-packard' 

Я считаю, что вы хотите перенаправить на новое место HTTP, а не в файл, так что ваш mod_php или php-fpm интерпретировать ваш перенаправляются запрос:

RewriteRule /search/manufacturer/?(.*)$ http://%{HTTP_HOST}/search/index.php?advanced=0&manufacturer_rewrite=$1%{QUERY_STRING} [L] 
+0

Я бы хотел, чтобы REQUEST работал над 'localhost' (домен' developer.prodev' является переходом пути 'hosts'). Есть ли способ улучшить ответ, так что регулярное выражение работает на обоих путях? – Killrawr

+0

уверен, обновленный ответ. –

+0

Спасибо Мартину, я не закончил использовать правила перезаписи, которые вы указали в ответе. (Но ваш ответ поставил меня на лучший путь). Теперь сайт, на который я их проектировал, немного лучше [seo] (http://www.justink.co.nz/search/manufacturer/hewlett-packard.php). – Killrawr

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