Настройте апача для обрабатывания всех запросов через единственный index.php

У меня есть ПК, сидящий рядом со мной, который запирается под тяжелым диском IO. Это начало делать это после того, как я установил сетевую плату. Таким образом да, я "пожарил" аппаратные средства, которые были бы сохранены с полоской.

0
задан 21 August 2009 в 10:58
6 ответов

Хорошо, без mod_rewrite. mod_rewrite ответ, конечно, но это использует mod_alias:

RedirectMatch permanent ^/(?<!index\.php)(.*) http://example.com/index.php

Это должно соответствовать чему-либо, чем не предшествуют index.php и выпустите постоянное перенаправление к корректному index.php. Обратите внимание, что необходимо будет указать все местоположение как цель.

Обновленный я протестировал вышеупомянутое, и ему нужен Apache 2.0 +, поскольку оно использует PCRE. Если Вам нужно фактическое добавление пути к index.php, затем добавьте $1 к пути перенаправления.

1
ответ дан 4 December 2019 в 11:09
LoadModule rewrite_module     /usr/lib/apache/modules/mod_rewrite.so

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/?index.php$
RewriteRule . index.php
2
ответ дан 4 December 2019 в 11:09
  • 1
    (путь к mod_rewrite может отличаться, и может идти по умолчанию в apache2, я забываю, это копируется с моих апачских 1,3 установок), –  Devin Ceartas 19 August 2009 в 17:14

Сохраните следующее в файл, названный .htaccess в Вашем веб-корне.

# Turn on URL rewriting
RewriteEngine On

# Web Directory
RewriteBase /

# Protect certain folders from being viewed
RewriteRule ^(protected|directories) - [F,L]

# Rewrite URLs to index.php/URL
RewriteRule .* index.php/$0 [PT,L]
2
ответ дан 4 December 2019 в 11:09

Можно сделать это с правилом mod_rewrite.

#.htaccess code
RewriteEngine On
RewriteRule ^(.*)$ index.php [L]
1
ответ дан 4 December 2019 в 11:09
  • 1
    Я думаю, что Вам нужен RewriteCond для предотвращения цикличного выполнения –  Devin Ceartas 19 August 2009 в 17:18
  • 2
    Вероятно. Мой mod_rewrite ржав. –  Boohbah 19 August 2009 в 17:57

Это - то, что устанавливают работы с моим Wordpress:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

Две строки RewriteCond позволяют служить существующим файлам: без них необходимо было бы передать изображения и таблицы стилей через index.php также.

1
ответ дан 4 December 2019 в 11:09

Это вполне немного более просто, чем любой из них, и Вы просите решение без mod_rewrite, таким образом:

 Alias /static/  /path/to/static/files/
 Alias /         /path/to/script.php/

Если у Вас нет статических файлов, можно ли, конечно, опустить первую строку (но она обычно отвечает на развитие, "как я делаю исключения").

Как грязный взлом для более старого Apache (1.x), можно использовать 404 обработчика и DocumentRoot пустой каталог, но это - ужасный путь. Я видел, что это рекомендовало прежде, но это было давным-давно, когда это было необходимо. Это могло бы помочь в нечетных случаях.

1
ответ дан 4 December 2019 в 11:09

Теги

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