htaccess URL rewrite: что я запутал в коде? - PullRequest
1 голос
/ 22 июля 2011

У меня есть следующее правило перезаписи:

Options +FollowSymlinks
RewriteEngine on
RewriteCond %{HTTP_HOST} Catalog\/(string|page)\/
RewriteRule ^Catalog\/(string|page)\/([^\/]+)\/[^\.]+\.html$  Catalog/Catalog.php?$1=$2

RewriteRule находится на одной строке, но может отображаться здесь на нескольких строках.

В основном мои вопросы касаются того, что я делаю неправильно.Я не получаю никаких ошибок, поэтому Rewrite работает.Я набираю в браузере адрес www.domain.com/Catalog/string/RT/Round_Tomato.html, и я надеялся получить www.domain.com/Catalog/Catalog.php?string=RT

Я предполагаю, что мое регулярное выражение испорчено, но не смогло его понять правильно.

1 Ответ

1 голос
/ 22 июля 2011

Я думаю, что первая неправильная вещь - поставить точку без обратной косой черты перед (.) => Www.

 ^www\.([^/])/Catalog/([a-zA-Z0-9]+)/([a-zA-Z0-9_]+).html$ www.$1/Catalog/Catalog.php?string=$2

. Вот яркий пример:

RewriteRule ^ http://www.remotesite.com/(.*)$ / mirror / of / remotesite / $ 1

http://httpd.apache.org/docs/2.0/misc/rewriteguide.html

проверьте это:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteRule ^Catalog/(.+)/(.+)\.html$ /Catalog/Catalog.php?$1=$2

вам следует перезапустить сервер apache - если онлокальный сервер - (запуск и остановка), и вы должны иметь доступ к http://localhost/Catalog/string/RT.html

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