Autor | Zpráva | ||
---|---|---|---|
Josef Přerovský Profil |
#1 · Zasláno: 5. 11. 2018, 15:53:23
Zdravím :)
V htaccess mám: RewriteRule ^profile/(.*)$ profile.php?nick=$1 [QSA] A u zobrazení mám: <?php //We check if the users ID is defined if(isset($_GET['nick'])) { $nick = mysql_real_escape_string($_GET['nick']); //We check if the user exists $dn = mysql_query('select * from users where nick="'.mysql_real_escape_string($_GET['nick']).'"'); if(mysql_num_rows($dn)>0) { $dnn = mysql_fetch_array($dn); //We display the user datas ?> ... Funguje v případě, když mám odkaz: profile.php?nick=nick a potřeboval bych, aby to fungovalo, když zadám profile/nick
Dokaže někdo poradit? Děkuji :) |
||
Andrej.B Profil |
Zapnut logovanie na rewrite, co to vobec robi - httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewritelog
inak je dobre zapnut doplnanie lomitka... Cize: profile/nick/ bude rewritovat na profile.php?nick=nick RewriteEngine on RewriteRule ^(.+[^/])$ /$1/ [R=301] RewriteRule ^profile/([a-z-]+)/$ profile.php?nick=$1 [QSA,L] Moj priklad funguje len na pismena... Ta premenna nick=jozko je vlastne ([a-z-]+)/$ profile.php?nick=$1 cize /profile/jozko vy davate v priklade profile/nick=jozko este by som vyskusal, ci vobec funguje rewrite na jednoduchom riadku RewriteRule profile\.html profile.php |
||
Ikki Profil |
#3 · Zasláno: 5. 11. 2018, 18:52:40
RewriteEngine on RewriteRule ^profile/(.*)$ profile.php?nick=$1 [QSA] Takhle to určitě fungovat musí, tedy pokud tvůj odkaz k souboru není jiný, nemáš zakázaný .htaccess, nebo ho nemáš třeba v jiné složce. |
||
Andrej.B Profil |
#4 · Zasláno: 5. 11. 2018, 20:59:02
Josef Přerovský:
$nick = mysql_real_escape_string($_GET['nick']); //We check if the user exists $dn = mysql_query('select * from users where nick="'.mysql_real_escape_string($_GET['nick']).'"'); A v tom selecte z DB nemusite zase escapovat premeneu $_GET['nick'] , staci pouzit premennu $nick... A zbavte sa mysql , pouzivajte mysqli rozsirenia or PDO... $conn = new mysqli($localhost, $user, $password, $databaza); $nick = mysqli_real_escape_string($conn,$_GET[nick]); // kde $conn je vase pripojenie do DB |
||
Josef Přerovský Profil |
#5 · Zasláno: 6. 11. 2018, 05:40:24
S proměnnou id to fungovalo dobře bez problému. Mrknu na to. A vyzkousim vše možné
Ikki: Tak přesně to mám. |
||
Josef Přerovský Profil |
Takže, v profile.php mám:
<?php //We check if the users ID is defined if(isset($_GET['nick'])) { $conn = new mysqli($db_server, $db_user, $db_pass, $db_name); $nick = mysqli_real_escape_string($conn,$_GET['nick']); //We check if the user exists $dn = mysql_query('select * from users where nick="'.mysql_real_escape_string($nick).'"'); if(mysql_num_rows($dn)>0) { $dnn = mysql_fetch_array($dn); //We display the user datas ?> V htaccess souboru mám: RewriteEngine On RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^([^.]+)$/ /$1.php [L] RewriteCond %{REQUEST_FILENAME}.html -f RewriteRule ^([^.]+)$/ /$1.html [L] RewriteRule ^profile/([a-zA-Z0-9]+)/$ profile.php?nick=$1 [QSA,L] A vyhodí mi to: Not Found The requested URL /profile/nejakejmeno454 was not found on this server. Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request. Apache/2.4.37 (Ubuntu) Server at majnlist.eu Port 80 A když dám domena/profile/tester tak mě to presmeruje na: domena/404.php/
A vyhodí File not found.
|
||
Andrej.B Profil |
#7 · Zasláno: 7. 11. 2018, 16:44:56 · Upravil/a: Moderátor (editace znemožněna) 7. 11. 2018, 18:16:49
v novom Apache 2.4 nieje mozne pouzivat .htaccess /aspon vo VirtualHost/, je potreba Rewrite davat do kontajnera v httpd.conf, alebo pouzit VirtualHost httpd-vhosts.conf... Vzdy treba restartovat server...
DocumentRoot "f:/www/localhost" <Directory "f:/www/localhost"> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> |
||
Josef Přerovský Profil |
#8 · Zasláno: 7. 11. 2018, 17:04:16
Mám to na hostingu crew.sk
|
||
Josef Přerovský Profil |
#9 · Zasláno: 7. 11. 2018, 18:05:07
na doméně
|
||
Ikki Profil |
#10 · Zasláno: 7. 11. 2018, 18:29:40
RewriteEngine On RewriteBase / RewriteRule ^([a-zA-Z0-9\-]+)$ $1.php RewriteRule ^profile/(.*)$ profile.php?nick=$1 [QSA] ErrorDocument 404 /404 Tohle bohatě postačí a na crew to 100% funguje. A jen tak mezi námi - nehonil bych tady příspěvky kopírováním cizích řešení, pokud sám potřebuješ pomoci s každou prkotinou a základními věcmi. |
||
Josef Přerovský Profil |
#11 · Zasláno: 7. 11. 2018, 18:49:42
Super. Díky moc :)
|
||
Davex Profil |
#12 · Zasláno: 7. 11. 2018, 20:28:49
Andrej.B:
„v novom Apache 2.4 nieje mozne pouzivat .htaccess /aspon vo VirtualHost/“ Používat .htaccess v Apache 2.4 samozřejmě lze. Oproti verzi 2.2 se pouze změnilo výchozí nastavení z AllowOverride All na AllowOverride None , což .htaccess vypíná. V kontextu „directory“ jde opět volbu přenastavit.
|
||
Andrej.B Profil |
#13 · Zasláno: 8. 11. 2018, 05:16:03
Davex:
super diky... pri prvom spusteni Apache a hrani sa mi davalo Internal Error a po gugleni som nasiel , ze treba davat rewrite rule priamo do kontainera kde je ulozeny projekt. napr. k virtualhostu test.sk ako to mam terazw <Directory "f:/www/_vhost/test.sk"> RewriteEngine on RewriteRule ^(.+[^/])$ /$1/ [R=301] RewriteRule ^([a-z-]+)/$ index.php?akcia=$1 [QSA,L] </Directory> |
||
Časová prodleva: 5 let
|
0