web-dev-qa-db-ja.com

Mod書き換えルールの質問/ヘルプ

.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 /に直接アクセスします。どのようにこれを達成することができますか?

1
Goonyan Harir

次のコードは、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]
0
Goonyan Harir

次の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]
0
Floern