нужно .htaccess RewriteRule советую - PullRequest
0 голосов
/ 20 марта 2012

Я искал ответ на этот вопрос, не повезло.

Что я хочу сделать, это заменить

http://localhost/mysite/superv/something на

http://localhost/mysite/superv/?p=something

Вот лучшая формула, которую я придумал со вчерашнего дня:

RewriteEngine On
RewriteBase /mysite/
RewriteRule ^(superv/)([^\?/]+)$ $1\?p=$2 [NC]

И все же она не работает.

Я думаю, что "RewriteBase" не имеет ничего общего с проблемойпотому что эта строка работает как шарм:

RewriteRule ^(javascripts/main\.js)$ $1\.php [NC]

Edit: Right Rekire, это была ошибка при копировании и вставке кода.Я исправил вопрос сейчас.

Edit2: Вот ошибка, которая появляется в журналах Apache:

 [Tue Mar 20 20:26:01 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.

Я предполагаю, что проблема заключается в"цикл", и я цитирую:

 Looping occurs when the target of a rewrite rule matches the pattern. 
 This results in an infinite loop of rewrites

Ответы [ 2 ]

1 голос
/ 26 апреля 2012

По какой-то причине эта формула сработала (внутреннее перенаправление):

RewriteRule (.*)(superv/)?(.*) $1$2index.php?p=$3 [NC,QSA]

Кажется, это нарушило "бесконечный цикл".

1 голос
/ 21 марта 2012

Похоже, это работает для меня.

RewriteRule ^(superv/)([^\?/]+)$ $1?p=$2 [R,NC]

Удалите R, если вы хотите выполнить внутреннее перенаправление.

...