Я использую Kohana Framework 3.x. Мой веб-сервер - это Apache, и я использую виртуальные хосты, потому что я управляю несколькими сайтами с моим сервером.Apache: виртуальный хост и URL-адрес Перезапись внутри httpd.conf для платформы Kohana
Мой httpd.conf выглядит следующим образом:
<VirtualHost *:80>
ServerName www.myPage1.com
ServerAlias myPage1.com
DocumentRoot /var/www/myPage1
</VirtualHost>
<VirtualHost *:80>
ServerName www.myPage2.com
ServerAlias myPage2.de
DocumentRoot /var/www/myPage2
</VirtualHost>
В Кохана каждый запрос HTTP должен пойти в index.php первый. Потому что я не люблю эти уродливые URL, что все начинается с index.php (например, www.myPage1.com/index.php/item/detail/itemId) Я использовал следующий файл .htaccess, который работал отлично
# Turn on URL rewriting
RewriteEngine On
# Installation directory
RewriteBase/
# Protect hidden files from being viewed
<Files .*>
Order Deny,Allow
Deny From All
</Files>
# Protect application and system files from being viewed
RewriteRule ^(?:application|modules|system)\b.* index.php/$0 [L]
# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Rewrite all other URLs to index.php/URL
RewriteRule .* index.php/$0 [PT]
Теперь я хотел бы больше не использовать файл .htaccess и вместо этого переместить всю логику перезаписи в файл httpd.conf. Следующее дает мне «400 Bad Request»
<VirtualHost *:80>
RewriteEngine On
<Files .*>
Order Deny,Allow
Deny From All
</Files>
RewriteRule ^(?:aplication|modules|system)\b.* index.php/$0 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT]
ServerName www.myPage2.com
ServerAlias myPage2.com
DocumentRoot /var/www/myPage2
</VirtualHost>
Что я делаю неправильно? Помощь будет оценена!
Я думал, что мне просто нужен RewriteBase, когда я использую URL-адрес перезаписи для каталога с файлом .htaccess. Если моя RewriteBase похожа на «/», я не могу запустить apache и получить ошибку. Я больше не хочу использовать файл .htaccess, потому что хочу, чтобы все настройки были в центре моего httpd.conf. – 2010-12-02 19:32:14
В `.htaccess` есть много чего-то неправильного, основным из которых является дополнительный доступ к диску для каждого каталога под корень документа в пути запроса, по каждому запросу. Ваш сервер будет работать значительно быстрее, если вы отключите сканирование для таких файлов (`AllowOverride None`). – 2013-07-25 07:05:13