2009-05-18 18 views
6

Saluti,redirect 301 index.html a/o /index.php

Ho appena mosso un sito web da IIS per Apache e sto avendo un po 'di problemi reindirizzare il file di indice senza causare un ciclo infinito.

Entrambi questi singolarmente causerà un loop-

Redirect 301 /index.htm /index.php

Redirect 301 /index.htm http://www.foo.com/

Qui di seguito è una copia del mio attuale. htaccess. Qualcuno può aiutarmi? Ho un sacco di link indicò http://www.foo.com/index.htm che vorrei 301 reindirizzare a http://www.foo.com/

RewriteEngine On 

########## Begin - Rewrite rules to block out some common exploits 
## If you experience problems on your site block out the operations listed below 
## This attempts to block the most common type of exploit `attempts` to Joomla! 
# 
# Block out any script trying to set a mosConfig value through the URL 
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR] 
# Block out any script trying to base64_encode crap to send via URL 
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR] 
# Block out any script that includes a <script> tag in URL 
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR] 
# Block out any script trying to set a PHP GLOBALS variable via URL 
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] 
# Block out any script trying to modify a _REQUEST variable via URL 
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) 
# Send all blocked request to homepage with 403 Forbidden error! 
RewriteRule ^(.*)$ index.php [F,L] 
# 
########## End - Rewrite rules to block out some common exploits 

# Uncomment following line if your webserver's URL 
# is not directly related to physical file paths. 
# Update Your Joomla! Directory (just/for root) 

# RewriteBase/

########## Begin - Joomla! core SEF Section 
# 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !^/index.php 
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|\.cfm|/[^.]*)$ [NC] 
RewriteRule (.*) index.php 
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L] 
# 
########## End - Joomla! core SEF Section 

Redirect 301 /a /administrator 
+0

+1 per allontanarsi da IIS ad Apache – eleven81

+0

@ eleven81 - Nizza. –

risposta

6

Perché stai facendo questo? Perché non aggiungere index.php al tuo vhost/config come un'estensione indice valido

DirectoryIndex index.html index.php 

e quindi eliminare il file HTML>

o

DirectoryIndex index.php 
0

Sono d'accordo con il commento di Kender circa il reindirizzamento ciclo continuo. Forse il modo rotonda che è quello di avere

DirectoryIndex notindex.html

insieme con i reindirizzamenti, poi mettere in prima pagina reale in notindex.html. Non so cosa c'è di sbagliato in chi usa /index.html se quella pagina esiste davvero?

+0

Avere sia http://www.example.com/ che http://www.example.com/index.html andando alla stessa pagina è ciò che Google chiama "contenuto duplicato" e potrebbe * creare * un problema SEO. E, oltre a possibili problemi di referenziamento, lo trovo brutto. Un URL, una pagina. – bortzmeyer

0

non mi è permesso di aggiungere collegamenti ipertestuali ancora, come io sono un nuovo utente, così quando ho digitato "foo" dare per scontato questo è l'intero URL ...

Per reindirizzare foo/index. php per foo/senza il ciclo, utilizzare un altro regola di riscrittura:

RewriteRule index.php foo/ [R=301] 

potrebbe essere necessario utilizzare /index.php a seconda di ciò che il vostro RewriteBase è impostata come (e quanti directory si dispone di un index.php a) .

1

Si avrebbe bisogno di controllare il valore di REQUEST_URI come questo:

RewriteCond %{REQUEST_URI} ^/index.htm$  # If REQUEST_URI == "/index.htm" 
RewriteRule (.*)/[R=301,L]    # Then 301 redirect to "/" 
Problemi correlati