Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: mod_rewrite
Форумы портала PHP.SU » » Вопросы новичков » mod_rewrite

Страниц (2): [1] 2 »
 

1. Zerrata - 11 Октября, 2013 - 10:16:36 - перейти к сообщению
Добрый день.
Имеется вот такой .htaccess

CODE (htmlphp):
скопировать код в буфер обмена
  1. RewriteEngine On
  2.  
  3. RewriteCond %{REQUEST_FILENAME} !-d
  4. RewriteCond %{REQUEST_FILENAME} !-f
  5. RewriteCond %{REQUEST_FILENAME} !-i
  6.  
  7. RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]


То есть все запросы отправляются на index.php
Подскажите пожалуйста, как сделать так, чтобы запросы типа site.com/adminka отправлялись на файл adminka.php ?
Пробовала вставлять аналогичное правило
CODE (htmlphp):
скопировать код в буфер обмена
  1. RewriteRule ^adminka$ adminka.php?url=$1 [QSA,L]

перед правилом с index.php - не помогает Огорчение Не дружу я с регулярками Огорчение

Спасибо
2. esterio - 11 Октября, 2013 - 10:42:34 - перейти к сообщению
http://htaccess[dot]madewithlove[dot]be/
3. Zerrata - 11 Октября, 2013 - 10:46:09 - перейти к сообщению
esterio пишет:
http://htaccess.madewithlove.be/

Спасибо, у меня есть сервер для тестирования
4. ninzzo - 11 Октября, 2013 - 17:38:51 - перейти к сообщению
Цитата:
http://htaccess[dot]madewithlove[dot]be/


не работает он. тоесть запускается но не реагирует на изменения htaccess
5. Squirrel - 12 Октября, 2013 - 19:57:56 - перейти к сообщению
Zerrata А не надо вообще ничего вставлять. А надо читать документацию, а не тупо копировать чужой код, да еще корявый.
6. Zerrata - 14 Октября, 2013 - 09:41:17 - перейти к сообщению
Squirrel пишет:
Zerrata А не надо вообще ничего вставлять. А надо читать документацию, а не тупо копировать чужой код, да еще корявый.


Такое написать я тоже могу. А вот объяснить "почему" - слабо? Я, кстати , поэтому и написала на форум, что бы подсказали, объяснили. А критики без всяких оснований я наслушалась достаточно.
7. Squirrel - 14 Октября, 2013 - 14:21:53 - перейти к сообщению
Zerrata А какая именно буква тебе не понятна?
Или ты хочешь что бы я объяснила, почему стоит читать документацию?
Объясню, мне не слабо: Чтобы понимать что и зачем ты делаешь, и как именно оно работает.
8. Zerrata - 14 Октября, 2013 - 15:08:36 - перейти к сообщению
О, не беспокойтесь, в Ваших постах я поняла все буквы. Если не можете объяснить как сделать две точки входа в приложение и что именно в коде криво, то конечно легче всего послать в документацию.
9. Squirrel - 14 Октября, 2013 - 23:11:47 - перейти к сообщению
А ты перечитай первый пост. Там все объяснено. Если с первой попытки не дошло, то могу повторить:
Squirrel пишет:
Zerrata А не надо вообще ничего вставлять.


Zerrata пишет:
Если не можете объяснить как сделать две точки входа

У тебя уже сделано бесконечное множество точек входа.
Вот в правильности 5й строки, и ее нужности, я не уверена.
(Добавление)
RewriteRule ^adminka$ adminka.php [NC,L] 2й строкой.
10. Zerrata - 15 Октября, 2013 - 10:38:24 - перейти к сообщению
Squirrel пишет:
У тебя уже сделано бесконечное множество точек входа.

У меня сделана одна точка входа
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
  3.  

Эта строка отправляет всех на front-controller (index.php).
Спасибо.
11. Squirrel - 15 Октября, 2013 - 17:31:45 - перейти к сообщению
Zerrata пишет:
У меня сделана одна точка входа

Это ты так думаешь, потому что не читаешь доки. Для доказательства, сделай простую вещь.
Создай простейший текстовый файл, всего с одной строкой: <?php echo "Марш читать доки!"; ?>
Назови его test.php и положи в корень своего сайта.
А теперь открой "http://твойсайт/test.php" и твой сайт расскажет тебе, что нужно делать.
12. Hapson - 15 Октября, 2013 - 18:02:25 - перейти к сообщению
наскока я понял, надо так

CODE (htmlphp):
скопировать код в буфер обмена
  1. RewriteCond %{REQUEST_FILENAME} !-f
  2. RewriteCond %{REQUEST_FILENAME} !-d
  3. RewriteCond %{REQUEST_FILENAME} !-l
  4. RewriteRule ^admin(.*)$ admin.php [QSA,NC,L]
  5.  
  6. RewriteCond %{REQUEST_FILENAME} !-f
  7. RewriteCond %{REQUEST_FILENAME} !-d
  8. RewriteCond %{REQUEST_FILENAME} !-l
  9. RewriteRule ^(.*)$ index.php [QSA,NC,L]


Squirrel пишет:
А теперь открой "http://твойсайт/test.php" и твой сайт расскажет тебе, что нужно делать.


А чтоб ничего не сказал, пишем в "единой точке входа":

PHP:
скопировать код в буфер обмена
  1. define("ACCESS", 1);


А в каждом файле, который не должен открываться пишем

PHP:
скопировать код в буфер обмена
  1. defined('ACCESS') or die (header('Location: /'));

ну или вместо редиректа что-то иное.
Подмигивание
13. Squirrel - 15 Октября, 2013 - 18:15:57 - перейти к сообщению
Hapson А нафига нужен QSA? И строки 1, 2, 3?
Вот объясни чиста на русском.
(Добавление)
А не проще "каждый файл который не должен открываться" положить в то место, откуда от открыться не сможет?
14. Hapson - 15 Октября, 2013 - 18:55:18 - перейти к сообщению
Squirrel пишет:
А нафига нужен QSA? И строки 1, 2, 3?

QSA... забыл. Что про query_string и то что он может куда-то потеряться.
строки 1 2 3? Запутался я. Не нужны?

Squirrel пишет:
А не проще "каждый файл который не должен открываться" положить в то место, откуда от открыться не сможет?

Наверно проще...
15. Zerrata - 16 Октября, 2013 - 15:17:18 - перейти к сообщению
Hapson, спасибо, разобралась.

P.S. Не напишет мне сайт ничего, про столь любимые Вами мануалы, т.к. я тоже использую прием описанный Hapson'ом.

 

Powered by ExBB FM 1.0 RC1