2010-09-17 7 views
0

J'aurais pensé que cela serait mieux documenté quelque part, mais je ne trouve pas beaucoup d'informations sur le sujet..htaccess: non www à www + extensions sans liens + pas d'index

Fondamentalement, j'utilise htaccess pour instiller 3 règles sur le site, je travaille sur:

  1. Redirect/récrire non www www
  2. Retirez les extensions de chacune des pages du site - ce sont des fichiers php. Cela signifie que l'index du site devient www.example.co.uk/index au lieu de www.example.co.uk/index.php, alors ...
  3. Rediriger/réécrire le site www.example.co.uk/ index www.example.co.uk/~~V~~singular~~3rd

Ceci est le script que j'ai compilé de différentes sources, il fonctionne, mais Google ne semble pas ramper sur le site quand je signale au sans extension urls dans le sitemap, une idée pourquoi? Merci d'avance.

Options +FollowSymlinks 
RewriteEngine On 

# Rewrite index.php to/
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/#?\ ]+/)*index\.php?\ HTTP/ 
RewriteCond %{HTTP_HOST} ^(www\.example\.co\.uk) [OR] 
RewriteCond www.%{HTTP_HOST} ^(www\.example\.co\.uk) 
RewriteRule ^(([^/]+/)*)index\.php?$ http://%1/$1 [R=301,L] 

# Rewrite example.co.uk to www.example.co.uk for canonic purposes, this rule is paired with the previous 
RewriteCond %{HTTP_HOST} ^example\.co\.uk [NC] 
RewriteRule ^(.*)$ http://www.example.co.uk/$1 [R=301,L] 
#REMOVE .php from file extensions 
# If the requested URI does not contain a period in the final path-part 
RewriteCond %{REQUEST_URI} !(\.[^./]+)$ 
# and if it does not exist as a directory 
RewriteCond %{REQUEST_fileNAME} !-d 
# and if it does not exist as a file 
RewriteCond %{REQUEST_fileNAME} !-f 
# then add .php to get the actual filename 
RewriteRule (.*) /$1.php [L] 

# If client request header contains php file extension 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^.]+\.)+php\ HTTP 
# externally redirect to extensionless URI 
RewriteRule ^(.+)\.php$ http://www.example.co.uk/$1 [R=301,L] 
+0

Quelle est la question alors? Si vous voulez savoir pourquoi Google n'explore pas le site, les règles d'exploration de Google sont créées par Google. Si cela ne fonctionne pas, cela ne fonctionne pas. – Rushyo

+0

la question est si il ya des erreurs flagrantes que j'ai fait qui l'empêcheraient d'être exploré correctement .. désolé, je devrais avoir rendu cela plus clair .. comme je l'ai dit la combinaison de règles est mal documentée. Salutations – Storsey

Répondre

0

Essayez ces règles:

# Redirect/rewrite non-www to www 
RewriteCond %{HTTP_HOST} ^www\.(.+) 
RewriteCond %{HTTPS}s://%1 ^on(.+)|offs(.+ 
RewriteRule^http%1%2%{REQUEST_URI} [L,R=301] 

# Remove the extensions from each of the site pages - they're php files. Doing this means that the site index becomes www.site.com/index instead of www.site.com/index.php, so... 
RewriteCond %{THE_REQUEST} ^GET\ (/[^?\ ]+)\.php[?\ ] 
RewriteRule .+\.php$ %1 [L,R=301] 

#Redirect/rewrite the www.site.com/index to www.site.com/ 
RewriteRule ^index$/[L,R=301] 
+0

merci pour l'entrée .. je me suis jeté une erreur interne du serveur 500 (j'ai changé le L, R0301 sur la dernière ligne à L, R = 301 aussi) .. aussi j'ai laissé de côté le code que j'ai été en utilisant, que je vais ajouter à mon message original maintenant – Storsey

Questions connexes