У меня есть проблема с только одна страница на RewriteRule HTAccess:.htaccess только один RewriteRule не работает
страница http://www.snes-fr.net/staff.html не работает (404), но все другие являются.
staff.php находится в папке: http://www.snes-fr.net/pages/staff.php
.htaccess линия: RewriteRule ^staff\.html$ index.php?page=staff [L]
но эта ссылка не работает: http://www.snes-fr.net/staff.html это один работает: http://www.snes-fr.net/cgu.html
RewriteRule ^cgu\.html$ index.php?page=cgu [L]
Код, который отображает страницу
$page = @htmlspecialchars($_GET['page'], ENT_QUOTES);
if(is_file('pages/'.$page.'.php'))
{
require('pages/'.$page.'.php');
}
У вас есть ключ? Спасибо
EDIT: Htaccess:
SetEnv PHP_VER 5_4
ErrorDocument 404 http://www.snes-fr.net/404.html
RewriteEngine on
Options +FollowSymlinks
SetEnv REGISTER_GLOBALS 1
SetEnv MAGIC_QUOTES 0
RewriteCond %{HTTP_REFERER} decerto\.fr [NC]
RedirectMatch seeother ^/dossier-super-nintendo_([0-9]+)_(.*)\.html$ http://www.snes-fr.net/tests.html
#REECRITURE
RewriteRule ^staff\.html$ index.php?page=staff [L]
RewriteRule ^cgu\.html$ index.php?page=cgu [L]
RewriteRule ^contact\.html$ index.php?page=contact [L]
RewriteRule ^404\.html$ index.php?page=404 [L]
RewriteRule ^index\.html$ index.php [L]
...
Все, что я работает RewriteRule после!
Я протестировал это правило перезаписи на локальном сервере, и это действительно работает. Вероятно, есть еще одна часть вашего «.htaccess». Можете ли вы показать нам это полностью? –
Кроме комментария Гильерме: почему вы используете htmlspecialchars здесь? Вы должны добавить проверку 'if (realpath ('pages /' .$ page. '. Php') == 'pages /'.$ page.'. Php ')', чтобы отклонить трассировку пути, т.е. make 'index. php? page = ../../some-other-php' невозможно –
Благодарим за совет, я изменил его! И добавил htaccess –