Подробно обяснение за .htaccess

sentenello каза:
Когато отворя
www.saita.com/match/1
Не ми излиза информацията за срещата, все едно $getid = $_GET['id']; не работи и от там не може да ми изкара информацията.

П.С.Сега се сетих, че нямам папка match и се чудя дали това не ви обърква.
Ако имаш папка match ще се бърка ДА, но ако нямаш не би трябвало да има проблем. Пробвай някъде отделно в .htaccess като поставиш
Код:
AddDefaultCharset UTF-8
Options +FollowSymlinks
RewriteEngine On
RewriteRule ^test/([0-9]+)$ test.php?id=$1 [L]
И си правиш една страница test.php в същата директория и в него постави:
PHP:
<?php
printf('Номера е, който сте задали с $_GET е: %d', (int)$_GET['id']);
 
Така..
Направих това което ми каза и когато отворя test.php ми извежда


Номера е, който сте задали с $_GET е: 0
 
sentenello каза:
Така..
Направих това което ми каза и когато отворя test.php ми извежда


Номера е, който сте задали с $_GET е: 0
Отвори http://localhost/test/1 и виж какво ще ти изкара. Резултата трябва да е: 1. Ако не е така явно не си разрешил Rewrite на Apache.
 
Номера е, който сте задали с $_GET е: 1

Явно тук става, но с другия опит не иска. Та да ти обясня. Тъй като платформата ми е wordpress, с много голяма преработка това match не е папка, но тъй като съм създал page който е match става все едно е папка. Има ли вариант да тествам като направя да е www.saita.com/matcha/123

И ако има то как трябва да направя .htaccess кода
 
Код:
RewriteRule ^matcha/([0-9]+)$ stranicata.php?id=$1 [L]
Пробвай! Само си промени stranicata.php с твоята. :?:
 
Тоя wordpress много главоболия ми причинява, ще трябва да експериментирам май.
 
sentenello каза:
Тоя wordpress много главоболия ми причинява, ще трябва да експериментирам май.
Аз никога не съм ползвал готови ситеми, не го уважавам много. Поне от вече 5 години. И точно с WordPress не съм се занимавал и не мога да ти помогна. Ако някой друг от форума знае как дано ти помогне. :?:
 
Сега пробвах нещо..

Сложих в match.php
printf('Номера е, който сте задали с $_GET е: %d', (int)$_GET['id']);

когато отворя www.saita.com/match/?id=30 ми излиза
Номера е, който сте задали с $_GET е: 30

когато обаче отворя www.saita.com/match/30
Номера е, който сте задали с $_GET е: 0

Дали проблема не е тук ??
RewriteRule ^match/([0-9]+)$ match.php?id=$1 [L]
 
sentenello каза:
Сега пробвах нещо..

Сложих в match.php
printf('Номера е, който сте задали с $_GET е: %d', (int)$_GET['id']);

когато отворя www.saita.com/match/?id=30 ми излиза
Номера е, който сте задали с $_GET е: 30

когато обаче отворя www.saita.com/match/30
Номера е, който сте задали с $_GET е: 0

Дали проблема не е тук ??
RewriteRule ^match/([0-9]+)$ match.php?id=$1 [L]
WordPress не си ли задавва сам .htaccess. Я провери дали има .htaccess файл и ако има го препиши тук.
 
Ето го .htaccess + това което ти ми даде

Код:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteRule ^matchaa/([0-9]+)$ match.php?id=$1 [L]
</IfModule>

# END WordPress
 
sentenello каза:
Ето го .htaccess + това което ти ми даде

Код:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteRule ^matchaa/([0-9]+)$ match.php?id=$1 [L]
</IfModule>

# END WordPress
А този файл match.php при този файл index.php ли е?
 
оригинално не е, но го сложих и там копие, за да видя какво ще стане. Но пак не стана
 
sentenello каза:
оригинално не е, но го сложих и там копие, за да видя какво ще стане. Но пак не стана
Има един вариянт, но не знам дали ще стане.
Ето го и него: премахвай по един ред от тези в htaccess файла без този който си сложил последно. И ако неработи връщай го и махай друг и т.н. до край. Накрая би трябвало да ти тръгне и ще разбереш точно от къде идва проблема. :D
 
Сега го накарах да проработи, но не както трябва, та значи.

Преместих твоя код в .htaccess на първо място.
Интересното е, че когато отворя
www.saita.com/matcha/300 - работи
но с "/"
www.saita.com/matcha/300/ -не работи

Другото интересно е че когато го отворя така - www.saita.com/matcha/300
губи дизайна на wordpress и все едно отварям някаква самостоятелна страница.
 
sentenello каза:
Сега го накарах да проработи, но не както трябва, та значи.

Преместих твоя код в .htaccess на първо място.
Интересното е, че когато отворя
www.saita.com/matcha/300 - работи
но с "/"
www.saita.com/matcha/300/ -не работи

Другото интересно е че когато го отворя така - www.saita.com/matcha/300
губи дизайна на wordpress и все едно отварям някаква самостоятелна страница.
Да не си махнал това: RewriteBase / :idea:
То как ще работи и по двата начина:
Код:
RewriteRule ^matchaa/([0-9]+)$ match.php?id=$1 [L]
RewriteRule ^matchaa/([0-9]+)/$ match.php?id=$1 [L]
 
sentenello каза:
Мне не съм пипал
RewriteBase /

А какво точно искаше да каже за двата начина ??
За да може да работи: http://example.com/matcha/13 и http://example.com/matcha/13/
 
Благодаря ти за нервите които похаби с мене. Ако успя да оправя да си излиза и дизайна мисля, че ще успея вече и сам да се справя с дооформянето на линка.

+1
 
sentenello каза:
Благодаря ти за нервите които похаби с мене. Ако успя да оправя да си излиза и дизайна мисля, че ще успея вече и сам да се справя с дооформянето на линка.

+1
Само да ти кажа по лесния начин, за да можеш да го отваряш с / и без /.
Код:
RewriteRule ^matcha/([0-9]+) matcha.php?id=$1 [L]
Не трябва да има накрая $. Така си спестяваш двете писания и пишеш само 1 ред.
 

Back
Горе