.htaccessファイルには、基本的にphpページを書き換えてサブフォルダーとして表示する次のルールセットがあります。たとえば、http://www.mysite.co.uk/about-me/
は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]
私がやりたいのは、ルートを自動的に転送/リダイレクトすることです- http://www.mysite.co.uk/ -とindex.phpコンテンツが重複しないように、htaccess経由で/ welcome-to-my-website /に直接アクセスします。どのようにこれを達成することができますか?
次のコードは、index.phpまたはWebサイトのルートがブラウザに入力された場合にユーザーをリダイレクトします。誰かがさらに以下を改良できる場合は、お知らせください。これが誰かが多くの時間と正気を節約するのに役立つことを本当に願っています:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(|index\.php)\ HTTP/
RewriteRule ^(|index\.php)$ http://%{HTTP_Host}/welcome-to-my-website/ [R=301,L]
次の3つのRewriteCondsは必要ないので、削除できます。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
ルートとindex.phpを/ welcome-to-my-website /にリダイレクトするには、これを使用できます:
RewriteRule ^(|index\.php)$ http://www.mysite.co.uk/welcome-to-my-website/ [L,R=301]