Проблема в перенаправлении через .htaccess - PullRequest
0 голосов
/ 07 сентября 2011

У меня есть файл, сгенерированный php: http://www.domain.com/?mod=test&act=view

И я хочу создать перенаправление с этого адреса на что-то вроде: http://www.domain.com/view-test

, чтобы каждый раз пользователь (илиbot) получает доступ к первому URI, который перенаправляется на http://www.domain.com/view-test, просматривая содержимое первого URI.

Прямо сейчас у меня есть следующие правила под моим .htaccess:

RewriteRule ^view-test$ /?mod=test&act=view [NC]
RewriteCond %{QUERY_STRING} mod=test&act=view
RewriteRule ^(.*)$ /view-test? [R,L]

Первое правило создает «псевдоним страницы» и работает, если я удаляю две другие строки (но не перенаправляю своих пользователей так, как я хочу)

После размещения двух последних правил я в конечном итоге зацикливаюсьили что-то еще, и я получаю сообщение о том, что «страница не перенаправляет правильно» ...

Если я удаляю первое правило, я получаю сообщение об ошибке 404 о том, что / view-test не найден

Есть идеи, что я делаю не так?

Ответы [ 2 ]

1 голос
/ 07 сентября 2011

Я думаю, что регулярное выражение лучше.Полный .htaccess файл для этой ситуации, если ваш обработчик php index.php

RewriteEngine On
RewriteBase /

RewriteCond %{QUERY_STRING} mod=(\w+)&act=(\w+)
RewriteRule ^$ /%2-%1? [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(\w+)-(\w+)$ /index.php?mod=$2&act=$1 [L]
0 голосов
/ 07 сентября 2011

забудьте о .htaccess, это проще сделать в php, я использую его на своем сайте, я создал файл index.php для перенаправления пользователей с example.com на example.com/123

в моемindex.php я положил это

<?php
header('Location: http://example.com/123');
?
>
...