правильны ли эти правила перезаписи для архивации следующих вещей? - PullRequest
1 голос
/ 08 марта 2012

я хотел

  1. перенаправить всех пользователей в домен с WWW
  2. im, используя codeigniter, поэтому хотел удалить index.php из URL
  3. и запретить доступ к индексу.php и перенаправить на имя домена, если кто-то запросит домен / index.php
  4. хочет 301 перенаправить все страницы

, так что это строки, которые я придумал .htaccess

RewriteEngine on

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

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} (.*)$
RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [L]

RewriteCond %{THE_REQUEST} ^.*/index\.php
RewriteRule ^(.*)index.php$ http://%{HTTP_HOST}/$1 [R=301,L] 

Правильны ли эти правила, чтобы делать то, что я хотел сделать?Есть ли лучшие способы сделать это?

С уважением

1 Ответ

0 голосов
/ 08 марта 2012

Я внес некоторые изменения и удалил лишний код.Вот ваш измененный .htaccess:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

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

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [L,QSA]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s(.*)/index\.php [NC]
RewriteRule ^ /%1 [R=301,L]

Также убедитесь, что ваши файлы css, js, images всегда используют абсолютный путь вместо относительного, т.е. путь к js, css, изображения должны начинаться с http:// или/.

...