.htaccess mod_rewrite просто сломал сайт - PullRequest
0 голосов
/ 10 марта 2010

в следующем файле .htaccess ...


RewriteEngine on
RewriteCond %{HTTP_HOST} ^getpearson.com$
RewriteRule ^/?$ "http\:\/\/www\.getpearson\.com" [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]
RewriteRule ^redesign_03012010/mock-up/([^/]+)/([^/]+)$ /redesign_03012010/mock-up/index.php?page=$1&section=$2 [PT]
RewriteRule ^redesign_03012010/mock-up/([^/]+)$ /redesign_03012010/mock-up/index.php?page=$1 [PT]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/([^/]+)$ /index.php?test=1&page=$1&section=$2
RewriteRule ^([^/]+)$ /index.php?test=1&page=$1 [L]

я удалил измененные последние 3 строки из:


RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/([^/]+)$ /index.php?test=1&page=$1&section=$2
RewriteRule ^([^/]+)$ /index.php?test=1&page=$1 [L]

до:


RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/([^/]+)$ /index.php?page=$1&section=$2
RewriteRule ^([^/]+)$ /index.php?page=$1 [L]

... отсюда только удаление переменной url 'test = 1 &', и теперь она не верна ... какова логика этого сумасшедшего языка htaccess? это ставит меня в тупик. во всяком случае, я сделал обход PHP, пока я не могу понять это, так что не беспокойтесь, но, пожалуйста, помогите! спасибо!

Ответы [ 3 ]

2 голосов
/ 10 марта 2010

"no werkie" немного расплывчато ... Правка, которую вы внесли в правила, кажется хорошей. Может быть, страница index.php ожидает, что переменная «test» будет присутствовать и вылетит, если ее нет?

Вместо удаления переменной «test» из строки запроса, попробуйте просто заменить «test = 1» на «test = 0».

0 голосов
/ 10 марта 2010

Звучит как проблема в вашем файле index.php, а не .htaccess. Что происходит, когда вы получаете доступ к index.php без test=1 напрямую, а не через переписанный URL? Я подозреваю, что он настроен на 500 ошибок в этой ситуации.

0 голосов
/ 09 марта 2010

Лукас, Я думаю, что вы последние два правила пропускаете / до шаблона. А также уберите [PT], это не подходит в этом случае.

RewriteRule ^/([^/]+)/([^/]+)$ /index.php?test=1&page=$1&section=$2
RewriteRule ^/([^/]+)$ /index.php?test=1&page=$1 [L]

Tom

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...