Задать вопрос

Что не так с RewriteRule (внутренний редирект не работает)

На сайте есть страница с адресом
/car_sets/search?search_category=car_sets&category=auto&make=BMW

Сеошники попросили для этой страницы сделать копию с адресом:
/mashinokomplekt-bmw


Сделать это средствами php (фремворк Laravel) не очень удобно, решил сделать внутренний редирекс с помощью htaccess
Но внутренний редирект не работает почему-то(404 ошибка вылазит), вот весь мой htaccess
<IfModule mod_rewrite.c>
	Options +FollowSymLinks
	RewriteEngine On
    RewriteBase /
</IfModule>


<IfModule mod_rewrite.c>
#Запрет на просмотр директорий
    Options All -Indexes
#редирект с www на без www
    RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
    RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
#редирект с index.php на без
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
    RewriteRule ^index\.php$ / [R=301,L]
#убираем последний слэш
    RewriteRule ^(.*)/$ $1 [R=301,L]


    RewriteRule ^mashinokomplekt-bmw? car_sets/search?search_category=car_sets&category=auto&make=BMW [L]


    #условие, что все существующие папки не будут обрабатываться регулярным выражением
	RewriteCond %{REQUEST_FILENAME} !-f
	#условие, что все существующие файлы не будут обрабатываться регулярным выражением
	RewriteCond %{REQUEST_FILENAME} !-d
	#регулярное выражение, в нашем случае — при любой строке запроса будет открывать index.php,
	RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

AddDefaultCharset UTF-8
php_value max_execution_time 0

Если сделать редирект внешним
RewriteRule ^mashinokomplekt-bmw? car_sets/search?search_category=car_sets&category=auto&make=BMW [R=301,L]

То редиректит, но задача сделать именно внутренний редирект

PS.
Если делаю внутренний редирект не для сайта. А для какого нибудь test.php то работает как надо.
  • Вопрос задан
  • 7180 просмотров
Подписаться 3 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
tvolf
@tvolf
Если у вас есть доступ к настройкам хоста, то можно попробовать включить ведение лога для mod_rewrite. Сушествуют два разных варианта под две ветки Апача, как я понял. Ну и по логам уже будет проще понять, как выполняется обработка конкретного url.
Ответ написан
@rakeev
По-моему вполне логичное поведение. Вы же указали, чтобы после хита по mashinokomplekt-bmw больше ничего не делать [L]. Вот он и честно пытается искать файл car_sets/search.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы