web-dev-qa-db-fra.com

Mod rewrite regle question / aide

J'ai le jeu de règles suivant dans mon fichier .htaccess qui réécrit fondamentalement mes pages php et les fait apparaître comme des sous-dossiers. Ainsi, par exemple, http://www.mysite.co.uk/about-me/ pointe sur http://www.mysite.co.uk/about.php:

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{HTTP_Host} !^www.mysite.co.uk$ [NC]
RewriteRule ^(.*)$ http://www.mysite.co.uk/$1 [R=301,NC,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$

RewriteRule ^index.php$ /welcome-to-my-website/ [L,R=301,NC]
ReWriteRule ^welcome-to-my-website/$ index.php [NC,L]
ReWriteRule ^about-me/$ about.php [NC,L]
ReWriteRule ^my-portfolio/$ portfolio.php [NC,L]
ReWriteRule ^contact-us/$ contact.php [NC,L]

Ce que je veux faire est de transférer/rediriger automatiquement la racine - http://www.mysite.co.uk/ - et la page index.php directement à/welcome-to-my-website/via htaccess pour qu’il n’y ait pas de contenu dupliqué. Une idée de comment on peut y arriver?

1
Goonyan Harir

Le code suivant redirige un utilisateur si index.php ou la racine d'un site Web est saisi dans le navigateur. Si quelqu'un peut préciser davantage ce qui suit, veuillez nous en informer. J'espère vraiment que cela aide quelqu'un à économiser beaucoup de temps et sa santé mentale:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(|index\.php)\ HTTP/
RewriteRule ^(|index\.php)$ http://%{HTTP_Host}/welcome-to-my-website/ [R=301,L]
0
Goonyan Harir

Je suppose que, après 3 RewriteConds ne sont pas nécessaires, vous pouvez les supprimer:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$

Pour rediriger la racine et le fichier index.php vers/welcome-to-my-website/vous pouvez utiliser ceci:

RewriteRule ^(|index\.php)$ http://www.mysite.co.uk/welcome-to-my-website/ [L,R=301]
0
Floern