Не удается получить доступ к записи или получить со страницы php после перенаправления - PullRequest
2 голосов
/ 27 января 2012

Я перенаправляю около 100 страниц hmtl на одну страницу PHP (example.php), используя .htaccess. Работает отлично.

У меня есть страница на этой странице (example.php), но я использую исходный URL-адрес HTML-страницы (example.html? Page = 2 & limit = 20)

  1. поэтому example.html, example1.html, example2.html, example3.html все перенаправляют на example.php.
  2. В адресной строке все еще отображается URL ".html", но из-за перенаправления .htaccess рендерит example.php.
  3. когда кликаете по ссылке на страницы (example.html? Page = 2 & limit = 20), в адресной строке браузера отображается правильный .html URL и строка запроса.
  4. Я пытался получить значения страницы и ограничить использование $ _GET и $ _REQUEST в (example.php), но я не увенчался успехом.

Пожалуйста, помогите мне прочитать параметры строки запроса (example.html? Page = 2 & limit = 20).

Редактировать Код перенесен из комментариев:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !^page-(.*)$
RewriteRule ^page-(.*)$ size-content.php?sef=$1 [L]

Ответы [ 3 ]

3 голосов
/ 27 января 2012

Добавьте флаг QSA, что означает «добавление строки запроса», чтобы убедиться, что существующая строка запроса перенесена в переписанный URL.

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !^page-(.*)$
RewriteRule ^page-(.*)$ size-content.php?sef=$1 [L,QSA]
0 голосов
/ 27 января 2012

Ясир - вы можете решить эту проблему двумя способами: 1) Переписать правила для .htaccess

RewriteEngine On RewriteCond% {REQUEST_FILENAME}! ^ Page - (. ). Html (. ) / (. ) $ RewriteRule ^ page - (. ). Html (. ) / (. )

Это правило будет обрабатываться: page-example.html? Page = 2 & limit = 20

Надеюсь - вы легко поймете вышеприведенное правило.

Примечание: помните, что каждая ссылка должна быть в том же порядке, если вы измените правило в htaccess.

2) Вы можете решить эту проблему на вашем "size-content.php"

Предположим, page-example.html? Page = 2 & limit = 20

$ _ GET ['sef'] = example.html? Page = 2 & limit = 20 [в зависимости от вас .htaccess]

Теперь вы можете разобрать эту строку с помощью функции разнесения

Спасибо

0 голосов
/ 27 января 2012

.htaccess измените конфигурацию вашего сервера.

если вы делаете перенаправление, вы меняете свой запрос.Попробуйте mod_rewrite, если вы используете Apache, конечно.

RewriteEngine On
RewriteRule ^example\.html\?(.*) example.php?$1

Перезапись мода - это модуль для ApacheНа большинстве бесплатных хостингов это не разрешено.

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