友好网址(.htaccess)中的$ _GET无效

时间:2014-06-06 15:25:10

标签: php apache .htaccess mod-rewrite get

我有一个.htaccess,当我使用$ _GET时它在某些条件下工作正常,但是为了不发送$ _GET

Options +ExecCGI -Indexes
DirectoryIndex index.php index.html index.htm

RewriteEngine On

RewriteRule ^playlist/(.+) radios-show.php?link=$1 [L]
RewriteRule ^player-free/(.+) player-free.php?link=$1 [L]
RewriteRule ^locutores/(.+) locutores-show.php?link=$1 [L]
RewriteRule ^pedidos-musicais/(.+) pedidos-musicais.php?link=$1 [L]
RewriteRule ^incorporar/(.+) incorporar.php?link=$1 [L]

RewriteRule ^buscar/(.+)/(.+)/(.+) search.php?tabela=$1&busca=$2&pagina=$3 [L]
RewriteRule ^buscar/(.+)/(.+) search.php?tabela=$1&busca=$2 [L]

RewriteRule ^usuarios/(.+) usuarios-show.php?link=$1 [L]

RewriteRule ^minhas-radios/(.+)/(.+)/(.+) minhas-radios.php?orderItem=$1&order=$2&pagina=$3 [L]
RewriteRule ^minha-radio/(.+) minha-radio.php?link=$1 [L]
RewriteRule ^opcoes-radio/(.+) opcoes-radio.php?link=$1 [L]
RewriteRule ^editar-radio/(.+) editar-radio.php?link=$1 [L]
RewriteRule ^locutar/(.+) locutar.php?link=$1 [L]
RewriteRule ^estatisticas/(.+) estatisticas.php?link=$1 [L]
RewriteRule ^administrar-locutores/(.+) administrar-locutores.php?link=$1 [L]
RewriteRule ^administrar-pedidos/(.+) administrar-pedidos.php?link=$1 [L]
RewriteRule ^minhas-favoritas/(.+) minhas-favoritas.php?pagina=$1 [L]
RewriteRule ^meus-amigos/(.+) meus-amigos.php?pagina=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

这些行正常工作,将$ _GET [' link']传递给代码

RewriteRule ^playlist/(.+) radios-show.php?link=$1 [L]
RewriteRule ^buscar/(.+)/(.+)/(.+) search.php?tabela=$1&busca=$2&pagina=$3 [L]
RewriteRule ^buscar/(.+)/(.+) search.php?tabela=$1&busca=$2 [L]
RewriteRule ^usuarios/(.+) usuarios-show.php?link=$1 [L]

但是这些不会将$ _GET ['链接']发送到代码中,并且不会传递任何我已经尝试使用$ _REQUEST的内容,但它也不起作用。

RewriteRule ^player-free/(.+) player-free.php?link=$1 [L]
RewriteRule ^locutores/(.+) locutores-show.php?link=$1 [L]
RewriteRule ^pedidos-musicais/(.+) pedidos-musicais.php?link=$1 [L]
RewriteRule ^incorporar/(.+) incorporar.php?link=$1 [L]
RewriteRule ^minhas-radios/(.+)/(.+)/(.+) minhas-radios.php?orderItem=$1&order=$2&pagina=$3 [L]
RewriteRule ^minha-radio/(.+) minha-radio.php?link=$1 [L]
RewriteRule ^opcoes-radio/(.+) opcoes-radio.php?link=$1 [L]
RewriteRule ^editar-radio/(.+) editar-radio.php?link=$1 [L]
RewriteRule ^locutar/(.+) locutar.php?link=$1 [L]
RewriteRule ^estatisticas/(.+) estatisticas.php?link=$1 [L]
RewriteRule ^administrar-locutores/(.+) administrar-locutores.php?link=$1 [L]
RewriteRule ^administrar-pedidos/(.+) administrar-pedidos.php?link=$1 [L]
RewriteRule ^minhas-favoritas/(.+) minhas-favoritas.php?pagina=$1 [L]
RewriteRule ^meus-amigos/(.+) meus-amigos.php?pagina=$1 [L]

在每个作品的代码中,他们找到了页面,但只是没有发送$ _GET,我必须在服务器上测试一切正常,但在另一个不能正常工作。我认为它可能是某个服务器与另一个服务器的配置不同,但服务器工作,我没有完全访问权限,看看有什么是hapenning。

我已经尝试了,但它没有工作

  

RewriteRule ^ meus-amigos /(.+)meus-amigos.php?pagina = $ 1 [L,QSA]

1 个答案:

答案 0 :(得分:1)

您的Apache中似乎已启用MultiViews个选项。将此行放在顶部将其关闭:

Options -MultiViews
  • MultiViews使用选项Apache's content negotiation module,它在mod_rewrite之前运行,并使Apache服务器匹配文件扩展名。因此/file可以在网址中,但它会投放/file.php