2012-09-14 8 views
-1

Я работаю с mod rewrite, но мой код не работает. Он работал какое-то время. Я раздели код.Mod rewrite rule не работает

.htaccess

RewriteEngine On 
RewriteBase/
RewriteRule ^/(.*)/$ index.php?test=$1 

PHP

<?php 
var_dump($_GET['test']); 
?> 

Если я иду в index.php он отображает NULL.

Я не понимаю, почему это больше не работает. Я надеюсь, что вы можете мне помочь.

P.s. Я проверил, загружен ли файл .htaccess, создав форму входа в систему с .htaccess.

ответ

1

Вы должны удалить первый слэш в правиле

RewriteEngine On 
RewriteBase/
RewriteRule ^(.*)/$ index.php?test=$1 
2

Вы должны избавиться от первой косой черты:

RewriteRule ^(.*)/$ index.php?test=$1 

И даже тогда ваше правило будет применяться только тогда, когда вы вводите url, который заканчивается косой чертой, например:

/index.php/ 

Если вы хотите, чтобы это работало с любыми URL, вам необходимо удалить последнюю черту, а также:

RewriteRule ^(.*)$ index.php?test=$1 

Edit: Чтобы избежать перезаписи существующих файлов и каталогов, которые необходимо добавить некоторые условия:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?test=$1 
+0

Thx, это сработало! Но у меня есть другой вопрос. В моем файле index.php у меня есть ссылка на таблицу стилей, но эта ссылка также переписана. Даже если я использую asbolute URL. – LEDfan

+0

@LEDfan См. Мое редактирование. – jeroen

+0

Tnx снова! Я нашел его перед тем, как вы отредактировали свой пост! Tnx! – LEDfan

Смежные вопросы