mod-rewrite удалить имя папки из URL
Я использую OJS, и я установил его в папке под названием "журналы". Я создал там несколько журналов (например, "journal1", "journal2" и т. Д.).
Теперь я получаю такие пути: www.example.com/journals/index.php/journal1
,www.example.com/journals/index.php/journal2
, так далее.
Что я хочу это карта www.example.com/journals/index.php/journal1
чтобы выглядеть как www.example.com/index.php/journal1
(удаление части журнала из URL).
Я не могу переместить OJS в root, потому что у меня там есть другие файлы.
Здесь .htaccess
файл, который я использую в настоящее время (он находится в папке "журналы" и дает мне 500)
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond $1 !^journals
RewriteRule ^(.*) /journals/$1 [L]
</IfModule>
Также вот ошибка.log
[Fri Oct 12 22:16:45 2012] [error] [client 127.0.0.1] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
1 ответ
Когда вы помещаете эти правила в файл htaccess в вашем /journals
каталог, это вызывает цикл перезаписи. $1
никогда не начинается с журналов, потому что вы находитесь в каталоге журналов, поэтому правило продолжает применяться.
Вам нужно будет поместить что-то подобное в ваш файл htaccess в корне вашего сайта, /
каталог:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/journals
RewriteRule ^index\.php(.*)$ /journals/index.php$1 [L]