modrewrite проблема RewriteRule - PullRequest
0 голосов
/ 26 мая 2010

Я использую Apache 2.2 и mod_rewrite. Я хотел бы взять следующие URL и сопоставить их с другим URL. Шаблон прост и так:

http://domain/test/ex1.html -> http://domain/app/index.php/content/?name=ex1

Я попробовал следующее в файле .htaccess (поместите в каталог / test / в docroot):

RewriteEngine On
RewriteBase /app/
RewriteRule (.*)\.html index.php/content/?name=$1

и

RewriteEngine On
RewriteRule (.*)\.html /app/index.php/content/?name=$1

Я не был уверен, что обратная ссылка была правильной, поэтому установил 0 и 2 доллара, но, похоже, никогда не помогал.

Я также попытался установить RewriteLogLevel на 9.

Есть шаг, где он почти есть: переписать 'ex1.html' -> 'index.php / content /? name = ex1'

Последняя строка журнала перезаписи выглядит следующим образом: Внутренний редирект [perdir / var / www / domain / htdocs / test /] с помощью /app/index.php/content/ [ВНУТРЕННЕГО НАПРАВЛЕНИЯ]

Как мне переписать это в /app/index.php/content/?name=ex1?

EDIT поэтому использование этого в качестве .htacces в файле docroot работает для RedirectMatch:

RewriteEngine On 
RewriteBase /
RedirectMatch ^(.*)/(.*)\.html$ http://domain/app/index.php/content/?name=$2
 #this doesnt work - adding to docroot allows for it to pick up but still using test/ex1 rather than just ex1
#RewriteRule ^(.*)\.html$ /app/index.php/content/?name=$1

Буду признателен за любую помощь в получении нижнего RewriteRule (который в данный момент закомментирован).

спасибо

Ответы [ 2 ]

1 голос
/ 26 мая 2010

В вашем примере вы упомянули домен / test /, поэтому я собираюсь переписать из /test/*.html в /app/index.php/content/?name=

RewriteEngine On
RewriteBase /
RewriteRule ^test/(.*)\.html$ /app/index.php/content/?name=$1

Это должно сработать.

0 голосов
/ 26 мая 2010

Хм, с макушки головы:

RewriteCond %{REQUEST_URI} ^/app/(.*)\.html$
RewriteRule ^/app/(.*)\.html$ /app/index.php/content/?name=$1

Предполагается, что база перезаписи равна /

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