Как я заставляю все URL пробежать единственный файл PHP?

Нет, удаленная очистка в данный момент для телефонов только. Приложения сторонних производителей действительно существуют - быстрый Google поднимает gadgettrak. com и абсолютный. com (никакая идея, насколько хороший они),

Но Вам не должно быть нужно к - если у Вас есть чувствительная информация о ноутбуке, необходимо зашифровать использование жесткого диска BitLocker (только Vista Ultimate & Enterprise).

9
задан 26 July 2009 в 23:27
2 ответа

При использовании Apache использование переписывает через mod_rewrite:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?q=$1 [L,QSA]

Это перепишет Ваши URL к» index.php? q=foo/bar/baz «прозрачно.

2. и 3. строки говорят переписать механизму не переписывать URL, если он указывает на существующий файл или каталог. Это необходимо, чтобы иметь доступ к реальным файлам, обеспеченным httpd сервером.

11
ответ дан 2 December 2019 в 22:30
  • 1
    Посмотрите редактирование выше. Получение ошибки 400. –  jmucchiello 26 July 2009 в 17:27
  • 2
    Каков был точный запрос, который Вы отправили к серверу? Ваш сервер имеет mod_rewrite установленным? Я делаю думаю так, потому что иначе это won' t запускаются из-за синтаксической ошибки. –  Manuel Faux 26 July 2009 в 18:26
  • 3
    Редактирование показывает точный запрос: localhost:8181 и localhost:8181/abc. Если я удаляю переписать правила, я получаю свой index.php с / и нормальные 404 с / abc. –  jmucchiello 26 July 2009 в 22:12
  • 4
    Я добавил / перед index.php, и это решило проблему. –  jmucchiello 26 July 2009 в 22:37
  • 5
    Таинственный... I' ve протестировал без наклонной черты, и это работало на меня с apache-2.2.11-8. –  Manuel Faux 26 July 2009 в 23:05

Код ниже использует mod_rewrite Apache для перезаписи всех URL, не указывающих на физический файл или каталог, который будет отображен на index.php. Конечный результат будет:

http://www.example.com/index.php/foo/bar/baz
http://www.example.com/index.php/goo/car/caz/SEO-friendly-name-of-the-object
http://www.example.com/index.php/hey/you

Перепишите правило:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [PT,L,QSA]

Объяснение:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

Оба вышеупомянутые строки диктуют, что это правило не относится к регулярным файлам (-f) или каталогам (-d).

RewriteRule ^(.*)$ index.php/$1 [PT,L,QSA]

Больше информации о том, как создать правила mod_rewrite, может быть собрано с веб-сайта Apache: http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html.

1
ответ дан 2 December 2019 в 22:30
  • 1
    Посмотрите редактирование выше. Получение ошибки 400. –  jmucchiello 26 July 2009 в 17:28
  • 2
    Мне бы хотелось установить оба ответа как корректные. –  jmucchiello 26 July 2009 в 22:39

Теги

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