Назад | Перейти на главную страницу

Как предотвратить открытие URL-адресов /index.php или /index.html?

DirectoryIndex index.html index.php

# -- INIT
RewriteEngine on
RewriteBase /

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

# -- SEO index.html // index.php ??????????? DONT KNOW ????????
RewriteCond %{THE_REQUEST} ^.*/index\.(php|html)
RewriteRule .* / [R=301,L]

# -- HACKING
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule .* /index.php [F]

# -- DIRECTORIES
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$  /$1 [R=301,L]

# -- FILES
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* /index.php [L]

Здравствуйте, может что-нибудь мне поможет с записью моего файла .htaccess? Я хочу добавить # - директиву SEO для 301 перенаправления с файла index.php или index.html на "/".

Но теперь у меня есть перенаправление со ВСЕХ маршрутов на «/» или циклическое перенаправление при перенаправлении с index.php или index.html.

Необходимо исправить # - часть SEO.

Если вы хотите перенаправить любой index. {Something} на корневой путь:

# -- DEFAULT DOCUMENT
DirectoryIndex index.html index.php

# -- INIT
RewriteEngine on

# -- REDIRECT ANY INDEX PAGE TO ROOT
RewriteCond %{Request_URI} /index\.
RewriteRule .* / [R=301]

# -- HACKING
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule .* /index.php [F]

# -- DIRECTORIES
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$  /$1 [R=301,L]

# -- REDIRECT REQUEST FOLDER TO /INDEX
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
RewriteRule .* /index.php [L]

например :

  • www.test.com/index.php => покажет www.test.com/
  • www.test.com/test/index.php => покажет www.test.com/
  • www.test.com/any/folder/index.htm => покажет www.test.com/

Это перенаправит любой index. {Something} в его папку (если папка существует)

# -- REDIRECT ANY INDEX PAGE TO REQUEST FOLDER
RewriteCond %{Request_URI} /index\.
RewriteRule (.*)/index\. $1 [R=301]

И

# -- REDIRECT REQUEST FOLDER TO IT INDEX
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
RewriteRule (.*)/index\. %{DOCUMENT_ROOT}$1/index.php [L]

например :

  • www.test.com/index.php => отобразит www.test.com/
  • www.test.com/test/index.php => отобразит www.test.com/test/
  • www.test.com/any/folder/index.htm => отобразит www.test.com/any/folder/