Atualmente estou usando a hospedagem com servidor lightspeed . O host diz que mod_rewrite
está ativado, mas não consigo fazer meu script funcionar lá. Sempre que tento acessar a URL, ele retorna 404 - página não encontrada .
Coloquei os mesmos códigos em outro servidor que está rodando com Apache. Está funcionando ali. Então eu acho que é o problema .htaccess
e mod_rewrite
.
Mas o suporte de hospedagem ainda está insistindo comigo que seu mod_rewrite está ativado, então eu gostaria de saber como posso verificar se ele está realmente ativado ou não.
Tentei verificar com phpinfo()
, mas sem sorte, não encontro mod_rewrite
, é porque estão usando lightspeed
?
Existe alguma maneira de verificar? Por favor, me ajude. Obrigado.
Para sua informação: meu .htaccess
código é
Options -Indexes
<IfModule mod_rewrite.c>
DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 !^(index\.php|assets|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]
</IfModule>
Eu tentei assim também
DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 !^(index\.php|assets|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]
Mas mesmo resultado.
fonte
Para verificar se o módulo mod_rewrite está habilitado, crie um novo arquivo php na pasta raiz do seu servidor WAMP. Digite o seguinte
phpinfo();
Acesse o arquivo criado a partir do seu navegador.
CtrlFpara abrir uma pesquisa. Procure por 'mod_rewrite'. Se estiver habilitado, você o verá como 'Módulos carregados'
Caso contrário, abra httpd.conf (arquivo Apache Config) e procure a seguinte linha.
#LoadModule rewrite_module modules/mod_rewrite.so
Remova o sinal de libra ('#') no início e salve este arquivo.
Reinicie seu servidor apache.
Acesse o mesmo arquivo php em seu navegador.
Procure por 'mod_rewrite' novamente. Você deve ser capaz de encontrá-lo agora.
fonte
phpinfo()
o campo “API do servidor” mostrar “CGI / FastCGI”).phpinfo()
não listará os módulos habilitados. Nesse caso, consulte Como verificar o mod_rewrite no PHP CGI .Se você estiver usando um arquivo de configuração de hosts virtuais, certifique-se de que o host virtual em questão tenha a diretiva em
AllowOverride All
algum lugar como este:Basicamente, isso permite o processamento de todas as diretivas .htaccess.
fonte
...
em<Directory ...>
? O que devo colocar lá? o diretório onde está .htaccess?ServerName
, não mudei o nome do diretório, depois disso e reiniciei o apache tudo bem.Se apache_get_modules () não for reconhecido ou nenhuma informação sobre este módulo em phpinfo (); tente testar a reescrita do mod adicionando essas linhas em seu arquivo .htaccess:
E mod_rewrite.php:
fonte
console:
fonte
E se
retorna, em
true
seguida, mod-rewrite é habilitado.fonte
A
apache_get_modules()
função definida do PHP retorna uma lista de módulos habilitados. Para verificar semod_rewrite
está ativado, você pode executar o seguinte script em seu servidor:Se o exemplo acima falhar, você pode verificar mod-rewrite usando seu
.htaccess
arquivo.Crie um
htaccess
arquivo na raiz do documento e adicione a seguinte rewriteRule:Agora visite http://example.com/HelloWorld , Você será encaminhado internamente para a página /index.php do seu site. Caso contrário, se mod-rewrite estiver desabilitado, você receberá um erro de servidor 500 Internel.
Espero que isto ajude.
fonte
.htaccess
?você pode fazer isso no terminal:
tirado de 2daygeek
fonte
sudo
Isso funciona no CentOS:
Deve produzir
rewrite_module (shared)
fonte
Se este código estiver em seu arquivo .htaccess (sem a verificação de mod_rewrite.c)
e você pode visitar qualquer página em seu site obtendo um erro de servidor 500. Acho que é seguro dizer que mod rewrite está ativado.
fonte
Você pode usar a função php
e verifique se há mod_rewrite
http://in2.php.net/apache_get_modules
fonte
Se você estiver no sistema Linux, você pode verificar todos os módulos de ativação para apache2 (no meu caso) na seguinte pasta: / etc / apache2 / mods-available
para digitar:
ll -a
se você deseja verificar os módulos disponíveis para a pasta php (neste caso, php 7) /etc/php/7.0/mods-available
digitar:
ll -a
fonte
basta fazer uma nova página e adicionar este código
e execute esta página, em seguida, encontre será capaz de saber o módulo está disponível ou não se não, então você pode perguntar para sua hospedagem ou se deseja habilitá-lo na máquina local, então verifique este tutorial passo a passo do youtube relacionado a habilitar módulo de reescrita no wamp apache https://youtu.be/xIspOX9FuVU?t=1m43s Ícone do servidor Wamp -> Apache -> Módulos Apache e verifique a opção de módulo de reescrita
fonte
Eu sei que esta questão é antiga, mas se você pode editar o arquivo de configuração do Apache para
AllowOverride All
partirAllowOverride None
fonte
Você só precisa verificar se o arquivo está lá, digitando
cat /etc/apache2/mods-available/rewrite.load
A linha de resultado não pode ser comentada começando com
#
fonte
Este código funcionou para mim:
fonte
Eu estava tendo o problema exato, resolvi clicando na estrutura personalizada, adicionando
/index.php/%postname%/
e funcionouEspero que isso evite o estresse que passei por descobrir o que diabos havia de errado com isso.
fonte