использование .htaccess для перенаправления с дружественного URL-адреса на текущий файл - PullRequest
0 голосов
/ 02 июня 2010

У меня есть следующий RewriteRule в моем .htaccess для перенаправления с дружественного URL в мой основной файл приложения:

RewriteRule ^\/(.*).html$ home/www/page.php?p=$1 [L]

Это должно отправить любой URL-адрес, указывающий на HTML-страницу, на page.php с URL-адресом в качестве параметра, который будет анализироваться приложением. Это работает для URL, которые выглядят как http://www.example.com/hello.html

Проблема в том, что я получаю сообщение об ошибке 404, когда URL-адрес содержит путь к каталогу, например: http://www.example.com/category/hello.html

Ошибка гласит: «Файл не существует: / home / www / category»

Кажется, что сначала ищет путь категории вместо обработки .htaccess Есть идеи как это решить?

1 Ответ

1 голос
/ 02 июня 2010

Вы пытались удалить начальный \/ из вашего правила перезаписи?

Я только что попробовал следующий .htaccess файл:

RewriteEngine On
RewriteRule ^(.*)\.html$ page.php?p=$1 [L]

С этим, как мой page.php:

<?php print_r($_GET); ?>

И когда я иду к /category/hello.html, я получаю следующее:

Array ( [p] => category/hello )

Именно так, как и ожидалось.

Также обратите внимание, что вам нужно экранировать . до html, поскольку вы, вероятно, не хотите, чтобы /category/hellozhtml работал.

...