não mod_rewrite para redirecionar /index.whatever para / está trabalhando
-
06-07-2019 - |
Pergunta
Eu quero redirecionar todas as solicitações para index.html | php | php5 para http: //www.domain .co.uk / usando mod_rewrite e eu copiou o código de um livro sobre Search engine optimization com o PHP verbatim, então adicionado na opção php5, mas ele não está funcionando. Este é o meu arquivo .htaccess completa:
RewriteEngine On
#translate any .html ending into .php5
RewriteRule ^(.*)\.html$ /$1\.php5
RewriteCond %{THE_REQUEST} ^GET\ .*/index\.(php5|php|html)\HTTP
RewriteRule ^(.*)index\.(php5|php|html)$ /$1 [R=301,L]
#change / for ?
RewriteRule ^(.*)\.html/(.*)$ /$1\.html?$2
#strip .html from search res page
RewriteRule ^(.*)search/(.*)$ /$1search_results\.html/search=$2
#translate product details link from search res page
RewriteRule ^products/(.*)/(.*)/(.*)$ /product_details.php5?category=$1&title=$2&id=$3 [L]
#Translate products/psorisis/chamomile-skin-cream-P[x] to productview.php5?id=1
RewriteRule ^products/.*-P([0-9]+) /productview.php5?id=$1 [L]
Eu não sei o que há de errado com isso, eo resto funciona bem e dândi. Alguém tem alguma ideia?
Solução
Eu acho que é porque suas extremidades RerwriteCond com \HTTP
.
mude para:
RewriteCond %{THE_REQUEST} ^GET\ .*/index\.(php5|php|html)
RewriteRule ^(.*)index\.(php5|php|html)$ /$1 [R=301,L]
Se você quiser combinar com o HTTP de THE_REQUEST em seguida, colocar um espaço lá
RewriteCond %{THE_REQUEST} ^GET\ .*/index\.(php5|php|html)\ HTTP
RewriteRule ^(.*)index\.(php5|php|html)$ /$1 [R=301,L]
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow