Мод rewrite

cold_zero

Registered
Искам като се отвори news/id/1 да се отвори news.php?id=1 и също така може ли с GET след това да се вземе id-то?
 
Добре а примерно като отворя

http://example.com/news/id/2

Как да ми вземе ID-то? Искам да е с GET но мисля, че не става, но тук ми спорят, че ставало и искам да разбера как...
 
cold_zero каза:
Добре а примерно като отворя

http://example.com/news/id/2

Как да ми вземе ID-то? Искам да е с GET но мисля, че не става, но тук ми спорят, че ставало и искам да разбера как...
е какъв е проблема? точно това прави

RewriteEngine on

RewriteRule ^news/id/([^/]+) /news.php?id=$1 [NC]
Отвори news/id/542547257 и пак ще ти отвори news.php?id=това ид

btw followsymlinks не ти трябва, а даже дава 500 на някой сървъри :)
 
Незнам...

.htaccess
Код:
RewriteEngine on
RewriteRule ^news/id/([^/]+) /news.php?id=$1 [NC]

news.php
Код:
<?php
$id = $_GET['id'];
echo "$id<br>";
?>

Не работи?
 
cold_zero каза:
Незнам...

.htaccess
Код:
RewriteEngine on
RewriteRule ^news/id/([^/]+) /news.php?id=$1 [NC]

news.php
Код:
<?php
$id = $_GET['id'];
echo "$id<br>";
?>

Не работи?

Сигурен ли си, че си сложил този .htaccess във руут директорията?
 
Не е в главната директория, а в директорията където е news.php, защото в момента тествам :)
 
cold_zero каза:
Не е в главната директория, а в директорията където е news.php, защото в момента тествам :)
Ами до колкото знам няма да стане докато не е в главната директория.
Аз така си чуках главата 30 минути докато разбера къде греша,
и накрая разбрах, че не работи ако не е в главната директория.
 
Значи сега го направих по следния начин и проработи:

.htaccess
Код:
RewriteEngine on
RewriteRule ^news/id/([^/]+) /test/news.php?id=$1 [NC]

Код:
<?php
$id = $_GET['id'];
echo "$id<br>";
?>

Промених news.php?id=$1 на /test/news.php?id=$1, как да го направя без да задавам папката?
 
Код:
RewriteEngine on
RewriteBase /test/
RewriteRule ^news/id/([^/]+) news.php?id=$1 [NC]
Ако ти даде 500 internal server мисля че някой искат rewritebase да е само в httpd.conf
Май апачето на бозата само
 
Ама задължително трябва да го има това така ли :(

Идеята ми беше може ли изобщо да не се задава това /test/, а да си отворя направо news.php в съответната папка където е...
 
Последно някой може ли да ми обясни кога е [NC], [L] и т.н. в кода?

Също така какво да правя с картинките при положение, че им е зададено да се отварят от images/1.jpg примерно... Трябва да ги променя всички спрямо директорията ли? Примерно /test/images/1.jpg?
 
Хмм сега видях, че на локалния ми сървър не работи... Проверих в httpd.conf и си имам заредени съответните неща

LoadModule rewrite_module modules/mod_rewrite.so
AddModule mod_rewrite.c

Друго трябва ли да се направи?

И изобщо може ли да се подкара rewrite на windows сървър, тъй като локалката ми е уиндоус и тествам на него преди да кача на хоста...
 
Може и ти бъкаш някъде :)
Значи.
Имаш папка, в нея слагаш .htaccess
В тази папка при htaccess имаш файл news.php
Имаш и този хтаксес, обаче без реда Options ... зщото понякога прави проблеми
И без RewriteBase
Така работи. 101% проблема не е в модула нито в rule-a
Накрая му сложи само [L]
 
Направих го по идентичен начин на моята локалка и на хоста, при мен не работи там работи... Може ли да е нещо в apacheto или да не може да се включи rewrite под windows?

Също така имам друг проблем, когато имам:

RewriteEngine on
RewriteRule ^video/ /video.php [NC]
RewriteRule ^video/([^/]+)/ /video.php?id=$1 [NC]

не работи, но когато махна RewriteRule ^video/ /video.php [NC] и остане само:

RewriteEngine on
RewriteRule ^video/([^/]+)/ /video.php?id=$1 [NC]

всичко и тип топ, защо се получава така?
 
1рото мисля че ти казах в поста ми да замениш [NC] със [L] иначе ще ти дава 404. Може и L,NC но няма смисъл

2рото защото така си му казал

RewriteEngine on
RewriteRule ^video/$ /video.php [L]
RewriteRule ^video/([^/]+)/ /video.php?id=$1 [L]
:)
 
alex95_bg_2, мерси за второто стана с $, но и с [L] на локалката rewrite не тръгва... Също така какво да измисля за картинките, за да ги показва? Да ги направя да ги зарежда с точна директория от рода на /test/img/1.jpg, а не както е сега img/1.jpg така ли?
 

Горе