Принудительно настроенный URL с помощью mod_rewrite - PullRequest
0 голосов
/ 25 июня 2009

Так что переписали мой уродливый php URL на что-то красивее:

RewriteEngine On
RewriteRule ^main/photo([^/\.]+)/?.html$ main/details.php?gid=$2pid=$1

Однако теперь я хочу заставить любого, кто идет на

http://www.example.com/main/details.php?gid=20&pid=5

для перенаправления на

htto://www.example.com/main/photo5.html

Я пробовал следующий RewriteCond:

RewriteCond %{REQUEST_URI} ^/main/details\.php [NC]
RewriteRule ^main/details.php?gid=(.*)&pid=(.*) http://www.example.com/main/photo$1.html [R=301,L]

Но это не сработало. Есть идеи?

1 Ответ

0 голосов
/ 25 июня 2009

Вам нужно заглянуть в строку запроса , чтобы определить, является ли текущий URI запроса оригинальным. Кроме того, вам нужно использовать директиву RewriteCond для проверки запроса URI:

RewriteCond %{THE_REQUEST} ^GET\ /main/details\.php
RewriteCond %{QUERY_STRING} ^(([^&]*&)*)pid=([0-9]+)(&.*)?$
RewriteRule ^main/details\.php$ /main/photo%3.html? [L,R=301]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...