Pergunta

Eu estou escrevendo algumas das minhas próprias regras por alguns scripts PHP que eu estou escrevendo, mesmo que eu tenho pouca experiência com regexp. Nota:. Pequena

Basicamente eu quero passar todos os URLs com exceção de alguns como argumentos para index.php, reescrevendo a maioria dos URLs definidos como lesmas em um banco de dados.

ou seja: / admin, / config, / images, / lib e / template existe, mas eu não quero ser reescrito. Mas tudo o resto, eu quero passados ??como argumentos para index.php.

Estou fazendo isso atualmente com:

url.rewrite-once = (
    "^/(.*)$" => "/index.php?$1"
)

O que funciona lindamente com as lesmas de banco de dados, no entanto, também redireciona as pastas listadas acima. Estes contêm arquivos necessários para ser acessado diretamente, mas não consigo encontrar em qualquer lugar que descreve como excluir cordas de um jogo.

Uma vez eu sei como fazer isso, eu posso descobrir o resto, mas sendo novo para RegExp Eu não sei por onde começar.

Qualquer ajuda seria muito apreciada.

Editar: Eu já dado a estes um tiro:

"^/(index\.php|admin|config|images|lib|template)" => "$0",

Para que FF relata um redirecionamento interminável para essas pastas;

"^/(?!(admin|config|images|lib|template))(.*)$" => "$0"

Não corresponde tudo, mas as pastas;

"^/([^(admin|config|images|lib|template)]*)$" => "/index.php?$1"

Mais uma vez, não reescrever qualquer coisa;

"^/(.*)$" => "/index.php?$1"

reescreve tudo, incluindo as pastas que eu não quero reescritos.

Foi útil?

Solução

I parecem ter conseguido o que eu estava procurando com a seguinte expressão:

"^/(?!(index\.php|admin|config|images|lib|template)).*$" => "/index.php?$0"

Eu, então, apenas

trim( $_SERVER['argv'] ,"/")

em index.php para obter a lesma.

Outras dicas

Tente isto:

url.rewrite-once = (
    "^/(index\.php|admin|config|images|lib|template)" => "$0",
    "^/(.*)$" => "/index.php?$1"
)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top