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 :: Версия для печати :: проблема .htaccess
Форумы портала PHP.SU » » HTTP и PHP » проблема .htaccess

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

1. skrudjmakdak - 16 Октября, 2011 - 11:38:38 - перейти к сообщению
извиняюсь если создал тему не там.. в файл .htaccess вбил такой текст:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([A-Za-z]+)$ index.php?p=$1 [L]
</IfModule>

содержимое index.php:
<?
echo "ок<br>".$_GET['p'];
?>

если в браузере забить site.ru/kakoitotext, то все отлично работает.. и индекс выдает: "ок<br>kakoitotext". а если я хочу передать параметр, например: site.ru/kakoitotext?param=1, то уже не работает.. не подходит по шаблону. а если и сделать, чтобы подходило по шаблону, то получится что то следующее(если я не ошибаюсь): index.php?p=kakoitotext?param=1... а это бред)) можете помочь чтобы site.ru/kakoitotext?param=1 работало???
2. DiosPA - 16 Октября, 2011 - 11:47:24 - перейти к сообщению
RewriteRule ^([a-zA-Z0-9_]+)$ index.php?param=$1 [L]
(Добавление)
skrudjmakdak а зачем так делать?

RewriteRule ^[^/]+(\.+[^/]+)+$ - [L]
RewriteRule ^(images|css|js|templates)/ - [L]
RewriteRule ^(.*)$ /index.php?url=$1 [NS]
(Добавление)
можно сделать неплохой ЧПУ Улыбка
тоесть сайт.ру/main/12/file/ и так далее
потом в файле по обработке url делаешь разбивку по $url = explode('/', $_GET);
3. skrudjmakdak - 16 Октября, 2011 - 11:56:04 - перейти к сообщению
т.е. параметры передавать через дробь??
4. DiosPA - 16 Октября, 2011 - 12:44:53 - перейти к сообщению
это как ты хочешь уже...
в этом примере можно как угодно RewriteRule ^([a-zA-Z0-9_]+)$ index.php?param=$1 [L]
тоесть .ru/page ($_GET['param'] будет равна page)
если дописать
.ru/page?a=1
то в $_GET будет и 'param' и 'a' (парам будет равно page а а будет равно 1)

PS. Надеюсь понятно пояснил
5. skrudjmakdak - 16 Октября, 2011 - 13:03:33 - перейти к сообщению
хм... видимо я тупой)) не работает)) вот смотрите:
в .htaccess я вбил то что вы сказали..
в index.php я сделал след код:

echo "url=".$_GET['url']."<br>id=".$_GET['id'];

адресная строка:

.ru/asf?id=534

браузер выдает:

url=asf
id=

что я не правильно делаю?? по идеи ид должен быть известен??
6. DiosPA - 16 Октября, 2011 - 15:37:48 - перейти к сообщению
щас напишу всё )
(Добавление)
в index.php чтобы не писать (echo "url=".$_GET['url']."<br>id=".$_GET['id'];)


в .htaccess
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_]+)$ index.php?par_1=$1 [L]
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)$ index.php?par_1=$1&par_2=$2 [L]

Запрос
http://test[dot]ru/a/asd?b=1

Результат
Array ( [par_1] => a [par_2] => asd [b] => 1 )
7. skrudjmakdak - 16 Октября, 2011 - 17:08:08 - перейти к сообщению
а у меня при запросе:site.ru/a/asd?b=1
выдает: Array ( [par_1] => a [par_2] => asd )
8. DiosPA - 16 Октября, 2011 - 17:20:18 - перейти к сообщению
попробуй
site.ru/a/asd&b=1
9. skrudjmakdak - 16 Октября, 2011 - 18:17:00 - перейти к сообщению
выдает:
Not Found

The requested URL /a/asd&b=1 was not found on this server

а не может из за разных настроек сервера??
10. DiosPA - 16 Октября, 2011 - 18:42:49 - перейти к сообщению
>а не может из за разных настроек сервера??
конечно может быть но скорее всего нет .htaccess переопределяет настройки сервера

выложи весь синтаксис я проверю
11. skrudjmakdak - 16 Октября, 2011 - 18:55:08 - перейти к сообщению
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_]+)$ index.php?par_1=$1 [L]
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)$ index.php?par_1=$1&par_2=$2 [L]

больше я ничего не добавлял
12. Champion - 16 Октября, 2011 - 19:56:38 - перейти к сообщению
Не читал, если честно всё, что здесь написано, но если нужно, чтобы просто сохранялся гет запрос, то сделайте
RewriteRule ^([A-Za-z]+)$ index.php?p=$1 [L,QSA]
В скрипте var_dump($_GET)
Для site.ru/kakoitotext?param=1 такого адреса будет
p=kakoititext
param=1.
Чтобы "kakoititex?param=1" сунулось в "p" - так нельзя.
Если нужно, чтобы в p попадал не только текст, а что угодно, используйте правило ^(.*)$

 

Powered by ExBB FM 1.0 RC1