Проблема с .htaccess (mod_rewrite). RewriteRule не работает правильно - PullRequest
1 голос
/ 24 мая 2010

У меня проблема с моими двумя RewriteRules.

.htaccess:

# protect the htaccess file
<files .htaccess>
 order allow,deny
 deny from all
</files>

RewriteEngine On
Options +FollowSymlinks
Options -Indexes
RewriteBase /test/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^download/([0-9]+)$ download.php?id=$1 [L]
RewriteRule ^(.*)$ index.php?c=view&misc=$1 [B]

Если URL содержит загрузку (например, mydomain.com/download/9), первое правило должно перенаправить этот запрос в download.php? Id = 9 Но это не так.

var_dump ($ _ GET) показывает следующее:

array(2) { ["c"]=>  string(4) "view" ["misc"]=>  string(9) "index.php" } index.php

Есть идеи?

Ответы [ 2 ]

1 голос
/ 26 мая 2010

Хорошо, я решил проблему.

# protect the htaccess file
<files .htaccess>
 order allow,deny
 deny from all
</files>

RewriteEngine On
Options +FollowSymlinks
Options -Indexes

RewriteBase /test/download/
RewriteRule ^download/([0-9]+)$ download.php?id=$1 [L]

RewriteBase /test/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php?c=view&misc=$1 [B]

Спасибо, ребята! :)

0 голосов
/ 24 мая 2010

Проблема не с правилом. Это работает здесь.

http://wingsoflol.org/download/9

My download.php содержит

Hi!
<br>Id = <?
echo $_GET['id'];
?>

и правило

RewriteRule ^download/([0-9]+)$ download.php?id=$1 [L]

Вы уверены, что RewriteBase должен быть / test /?

...