Intereting Posts
Достаточно ли FILTER_VALIDATE_EMAIL прекратить инъекцию оболочки? php session & iframe base64 кодирует изображение, не отображающееся в IE как обновить одно или несколько полей, игнорируя пустые поля в базу данных mysql? PHPMailer, вернуть код SMTP Функция загрузки изображений PHP, сохранение в каталоге, а затем возврат сохраненного URL-адреса изображения Ошибка SMTP с PHPMailer EHLO не поддерживается Как использовать значение массива от php до javascript? php ssh2_exec не выполняет команду su CakePHP: Нет такого файла или каталога (попытка подключения через unix: ///var/mysql/mysql.sock) Логический оператор PHP / Codeigniter Почему строки работают как массив в PHP 5.3? создание файла / диска подкачки на экземпляре ec2 micro на развертывании эластичного бобового стежка Symfony 2 – Неустранимая ошибка: не удается переопределить класс SessionHandlerInterface в C: \ … \ app \ cache \ dev \ classes.php в строке 532 Правила кодирования PHP?

переписывание url index.php

У меня есть URL-адреса

http://mysite.com/index.php?p=resources http://mysite.com/index.php?p=resources&s=view&id=938 

но я хочу, чтобы URL-адреса

 http://mysite.com/resources http://mysite.com/resources/view/938 

вместо того, чтобы делать сотни правил перезаписи, я задаюсь вопросом, можно ли просто иметь один? Ive head это возможно, «получив uri и разбив его на части», а затем просто добавьте правило перезаписи для index.php

но как? может кто-нибудь привести пример или связать учебник

Я использую это в .htaccess:

 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteRule .* index.php [L] 

Это по сути вызывает index.php, независимо от того, что запрашивается. Затем внутри вашего PHP-кода вы можете посмотреть $ _SERVER ['REQUEST_URI'], чтобы получить URL-адрес и проанализировать его соответствующим образом.

Строки RewriteCond предназначены для исключения прямых вызовов файлов. В моем случае я не хочу, чтобы такие вещи, как запросы на файлы js / css / image, проходили через index.php по соображениям производительности.

Создайте файл .htaccess. Не somefilename.htaccess, он просто называется .htaccess.
Примечание. Файлы index.php и .htaccess должны находиться в одном каталоге.

Теперь попробуйте это в файле .htaccess.

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^([A-Za-z0-9\-]+)$ index.php?p=resources
RewriteRule ^([A-Za-z0-9\-]+)/([A-Za-z0-9\-]+)/([0-9]+)$ index.php?p=resources&s=view&id=938
</IfModule>

подробнее о переписывании URL здесь