Мое предположение является Вашей производительностью, не масштабируется с Вашей стоимостью и усилиями. Мой пищеварительный тракт говорит мне, что можно быть ОЧЕНЬ более обеспечены с дополнительными серверами, упакованными полный RAM, если можно разделить кэш данных способом, который имеет смысл.
SSD обладает преимуществом почти нулевой задержки (сравнительно) в получении данных, но различные шины, которые соединяют его с оперативной памятью или сетью, собираются замедлить его значительно.
Вы могли всегда использовать mod_rewrite для перенаправления имени каталога без запаздывающей наклонной черты к dirname/index.html
. Вы могли использовать RedirectConds, чтобы удостовериться, что перенаправление не становится сделанным, если URL заканчивается запаздывающей наклонной чертой или .html, и что это только применяется конкретно к URL сообщения в блоге.
Позвольте мне сделать на скорую руку пример, это займет некоторое время.
# Trailing slashes and .html suffix
RewriteCond !/$
RewriteCond !\.html$
# Check if it's actually a dir and if index.html exists
RewriteCond %{REQUEST_URI} -d
RewriteCond %{REQUEST_URI}/index.html -f
# Rewrite anything that gets through (Probably insecure, but you get the idea)
RewriteRule ^(.*)$ $1/index.html
Править: Может также быть объединен с решением Matt добавления кода ошибки перенаправления к RewriteRule. Это должно, вероятно, также быть сделано последним RedirectRule. Обратитесь к mod_rewrite документации для больше.
Apache Переписывает Руководство, имеет главу по "Запаздыванию проблемы Наклонной черты" (прокрутите немного вниз), объяснение, как решить проблему с запаздывающими наклонными чертами в целом.
Однако они также заявляют, что запаздывающая наклонная черта требуется для каталогов, когда представленная страница в ней использует ресурсы (изображения, таблицы стилей..) с относительными ссылками - который не будет работать без наклонной черты:
"Решение этой тонкой проблемы состоит в том, чтобы позволить серверу добавить запаздывающую наклонную черту автоматически. Чтобы сделать это правильно, мы должны использовать внешнее перенаправление, таким образом, браузер правильно запрашивает последующие изображения и т.д. Если бы мы только сделали внутреннее, переписывают, это только работало бы на страницу каталога, но пошло бы не так, как надо, когда любые изображения включены в эту страницу с относительными URL, потому что браузер запросил бы встроенный объект. Например, запрос на image.gif в /~quux/foo/index.html стал бы / ~quux/image.gif без внешнего перенаправления!"
Удаление index.php от URL может быть сделано путем записи только двух строк в .htaccess (mod_rewrite в Apache) файл. Прежде, чем записать правила в .htaccess, удостоверьтесь, что mod_rewrite включен (RewriteEngine На) в Вашем сервере Apache. По всей вероятности mod_rewrite включен в сервере Linux, но для Windows Server Вы, возможно, должны были бы связаться с людьми хостинга для включения mod_rewrite. Можно проверить это путем взгляда в phpinfo ().
Ниже правила, которые удалят index.php из URL:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /([^/]+/)*index.php HTTP/
RewriteRule ^(([^/]+/)*)index.php$ http://www.%{HTTP_HOST}/ [R=301,NS,L]
Перенаправление 301 означает "Перемещенный Постоянно", таким образом, большинство поисковых систем удалит index.php из URL.
Вы читали определение DirectorySlash?
DirectorySlash
директива определяет, лиmod_dir
если fixup URL, указывающие на каталог или нет.Обычно, если пользователь запрашивает ресурс без запаздывающей наклонной черты, которая указывает на каталог,
mod_dir
перенаправляет его к тому же ресурсу, но с запаздывающей наклонной чертой на некоторых серьезных основаниях:
- Пользователь наконец запрашивает канонический URL ресурса
mod_autoindex
работы правильно. Так как это не испускает путь в ссылке, это указало бы на неправильный путь.DirectoryIndex
будет оценен только для каталогов, которые требуют с запаздывающей наклонной чертой.- Относительные ссылки URL в страницах HTML будут работать правильно.
Ну, если Вы не хотите этот эффект, и причины выше не относятся к Вам, можно выключить перенаправление с:
# see security warning below! <Location /some/path> DirectorySlash Off SetHandler some-handler </Location>
Вы могли бы хотеть попробовать Псевдоним: http://httpd.apache.org/docs/2.0/mod/mod_alias.html
У меня была та же проблема, но я использовал mod_alias для настройки дочернего сайта. Оказывается, мне нужно было сделать второй псевдоним без косой черты, чтобы он работал правильно. Выглядело это примерно так:
Alias /forum/ "/var/www/forum"
Alias /forum "/var/www/forum"
<Directory "/var/www/forum">
Options FollowSymlinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
В Ubuntu мне пришлось отредактировать файл /etc/apache2/mods-enabled/alias.conf с этими строками, а затем перезапустить apache. Не удалось найти этот ответ в Интернете; Я просто наткнулся на это сам, так как mod_rewrite не работал, и команда DirectorySlash тоже не помогла. Я добавлял программу, не относящуюся к Drupal, в качестве подсайта при установке Drupal, что и положило начало всему этому безумию ...
RewriteCond: bad argument line '!/[110]#39;
– Michael 10 October 2014 в 01:07