2015-06-13 2 views
1

Если запросы пользователей на этой странице:Создать временный редирект добавление «index.php» в URL

example.com/asdf/jkl?qwer=ty 

Я хочу, чтобы они перенаправляются на

example.com/index.php/asdf/jkl?qwer=ty 

я считаю, 307, вероятно, соответствующий код статуса. Мне просто нужно добавить «index.php» после имени домена для каждого запроса. Но ... изображения на странице все еще найдены на example.com/image/asdf.jpg. Я не знаю, повлияет ли директива .htaccess на запросы ресурсов в строке или нет, но мне это не нужно.

Причина, по которой мне нужно это то, что у нас есть a problem с нашим сайтом, который требует от нас добавления «index.php» в URL-адреса. Надеюсь, мы сможем это исправить. Тем временем наши индексированные результаты поиска Google приводят к 404 ошибкам.

EDIT:

Я попытался это:

RewriteBase/
RewriteRule ^/index - [L] # stop rule processing if request already starts with "index.php" 
RewriteRule ^(.*) index.php/$1 [L,R] 

Тестирование это на example.com/asdf/jkl, это приводит к example.com/index.php/index.php/index.php/.../index.php/asdf/jkl где "index.php" повторяется кучу раз. Иногда я также получаю сообщение о цикле переадресации.

ответ

1

Вы можете использовать этот код в файле DOCUMENT_ROOT/.htaccess:

RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^((?!index.php/).*)$ index.php/$1 [L,NC] 
+0

Это, кажется, работает очень хорошо. Я думаю, если бы я хотел на самом деле перенаправить, я мог бы изменить конец на '[L, NC, R = 302]' –

+0

Да, если вы хотите изменить URL-адрес, используйте: 'RewriteRule^((?! index.php /).*) $ index.php/$ 1 [L, NC, R = 302] ' – anubhava

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