Как переписать index.php (и другие допустимые файлы по умолчанию) к корню документа, использующему mod_rewrite?

Я выполнял поля FreeNAS в течение почти года с хорошим успехом. Я обычно использую их в качестве устройств резервного копирования к локальному устройству хранения данных, таким образом, производительность не имеет важного самого большого. Существующие системы, которые я имею, являются HPaq 2 GHz P4 с единственными 1,5 дисками емкостью. Поскольку я помню, когда мы сравнили приблизительно 6 месяцев назад, мы могли добраться, что-то как 40 МБ выдержало более чем соединение ГБ с помощью NFS. Я использовал iSCSI также, но не в этой точке.

Я недавно настроил единицу, подключенную через NFS к 2 хостам VMware, и до сих пор мой ежедневный парень управления не видит проблем производительности.

Мы экспериментировали с большим количеством ультрасовременных аппаратных средств с помощью RAID и большего количества дисков. Получение выполнения нового оборудования было трудным, таким образом, мы можем закончить тем, что использовали Ubuntu для ее превосходной поддержки оборудования и OpenFiler на вершине.

0
задан 21 April 2010 в 21:07
4 ответа

Я думаю, что что-то вроде этого должно работать. При убегании на встречу, таким образом, у меня нет времени для тестирования его, но в основном необходимо установить условие для не перенаправления основной www.site.com/index.php

RewriteEngine On
RewriteCond !^/index.php
RewriteRule ^index\.(php|htm|html|asp|cfm|shtml|shtm)/?$ / [NC,L]
0
ответ дан 4 December 2019 в 15:16
  • 1
    @solefald - Спасибо за выстрел, это все еще doesn' t, кажется, работают. (Я получаю сервер 500 ошибок со следующим: RewriteCond! ^index.php RewriteRule ^index\. (php|htm|html|asp|cfm|shtml|shtm)/? $/ri2/[NC, L] (/ri2 мой каталог разработки). Я также пытался выйти. и использование ^/index\.php, но все еще добирается 500. Кроме того, как я переписал бы для самого index.php? Спасибо за любой совет. –   22 April 2010 в 17:13
  • 2
    Попытайтесь добавить $1 после /ri2/. RewriteRule ^index\.(php|htm|html|asp|cfm|shtml|shtm)?$ /ri2/$1. Также можно хотеть включить вход mod_rewrite, но он работа привычки из .htaccess, необходимо поместить его в httpd.conf или безотносительно конфигурации, которую использует апач. RewriteEngine on RewriteLog /tmp/rewrite.log RewriteLogLevel 3 –  solefald 22 April 2010 в 18:22

Можно попробовать 301 перенаправление его. Это должно быть теоретически дружественной поисковой системой.

RewriteRule ^index\.(php|htm|html|asp|cfm|shtml|shtm)/?$ / [R=301,L]
0
ответ дан 4 December 2019 в 15:16
  • 1
    Ну, я don' t знают очень много о конфигурации сервера (that' s, почему мне нужны Вы парни), но я действительно знаю SEO. Ваш оператор неточен; 301 с ДЕЙСТВИТЕЛЬНО ТЕРЯЕТ PR: (см. матовое интервью cutts с Eric Enge 25.01.10: " существует некоторая потеря PR через 301". stonetemple.com/articles/interview-matt-cutts-012510.shtml ) –   22 April 2010 в 17:07
  • 2
    Вероятно, не все сотрудники Google единодушны ( tinyurl.com/adam-lasnik-on-301 ) ;-) Но I' m не специалист по SEO, таким образом, я won' t спорят здесь. Точка - даже при потере некоторого PR (it' s тот же домен здесь, таким образом, I' m не уверенный, если that' s, что Eric имел в виду), what' s корректный способ сделать это? Я предположил, что Ваша цель состоит в том, чтобы перенаправить все запросы для укоренения - для не предоставления доступа к основному, пролистывают .htm/.html/... (дублирующееся содержание?). Возможно, я неправильно понял Вас здесь. –  Karol J. Piczak 22 April 2010 в 18:34

Я уверен, что решение Karol правильно (RewriteCond в решении solefald является ненужным), и почтительно оспаривайте опровержение TMG относительно PageRank.

Во-первых, SEO и PageRank: в то время как это верно, что Matt Cutts указал, что 301 перенаправленная страница не (вполне) так же мощна как прямая ссылка, условие, которое должно быть исправлено здесь, имеет отношение к дублирующемуся содержанию. Если сайт с/index.php и сайт с / результат на той же странице, это - дублирующееся содержание, и (особенно с домашней страницей сайта) важный фактор: данная страница должна всегда иметь один и только один URL, "канонический" URL для страницы.

В лучшем случае Google проигнорирует, какой бы ни один он решает, что он должен. В худшем случае это индексирует обоих, и сайты, связывающиеся с одним вариантом, передадут PR тому варианту, и те, которые связываются с другим, передадут их PR другому. Необходимо заставить все страницы связываться с одной (и тот должен быть/).

Решение Karol выше правильно (Вам не нужен RewriteCond) с одним незначительным примечанием: при редактировании .htaccess файла это правильно, как записано; если Вы отредактируете в конфигурационном файле сервера или контексте VirtualHost, то необходимо будет добавить наклонную черту сначала

RewriteRule ^/index\.(php|htm|html|asp|cfm|shtml|shtm)/?$ / [R=301,L]

или сделать эту работу в любом контексте, используйте? оператор regex для высказывания "возможно наклонной черты":

RewriteRule ^/?index\.(php|htm|html|asp|cfm|shtml|shtm)/?$ / [R=301,L]

Заключительная дополнительная точка: удостоверьтесь в своей конфигурации (или сервер, virtualhost или .htaccess), Вы указываете, по крайней мере:

DirectoryIndex index.php
0
ответ дан 4 December 2019 в 15:16

В случае, если кто-то находит это, вот то, как я использую его для производства и разработки.

# index.php to root
RewriteCond %{HTTP_HOST} ^localhost [NC]
RewriteRule ^index\.(php|htm|html)/?$ /SiteFolder/ [R=301,NC,L]

RewriteCond %{HTTP_HOST} !^localhost [NC]
RewriteRule ^index\.(php|htm|html)/?$ / [R=301,NC,L]

Добавьте расширения, как Вам нужно, отделяясь с |

2
ответ дан 4 December 2019 в 15:16

Теги

Похожие вопросы