Проблемы с сокращением динамических URL

Я искал и пробовал несколько возможных решений.

Я начинаю с:

http:// example.com/ 729/start-page.asp?cid=4004  
http:// example.com/ 729/start-page.asp?cid=7916

и пытаюсь для:

http:// example.com/ johns-start-page  
http:// example.com/ judys-start-page

или, если возможно:

http:// johns-start-page.example.com/  
http:// judys-start-page.example.com/

пока что у меня есть:

RewriteEngine on
RewriteCond %{QUERY_STRING} ^cID=4004$  
RewriteRule ^729\.asp$ /johns-start-page [NC,R=301,L]

RewriteCond %{QUERY_STRING} ^cID=7916$  
RewriteRule ^729\.asp$ /judys-start-page [NC,R=301,L]

person fitcher    schedule 04.09.2015    source источник
comment
@Jon Lin, попробовал ваше первое решение, но его игнорируют. Не уверен, является ли {THE_REQUEST} заполнителем или RewriteCond %{THE_REQUEST} дословно входит в код.   -  person fitcher    schedule 04.09.2015
comment
Это был мой первый вопрос о SO. Теперь я вижу, что это был плохо заданный или просто дерьмовый вопрос с -2 голосами. Я мог бы использовать совет по лучшим вопросам вместо того, чтобы пинать под зад. Большое спасибо.   -  person fitcher    schedule 05.09.2015


Ответы (1)


Пока вы жестко кодируете эти вещи, вы можете попробовать:

RewriteEngine On

RewriteCond %{THE_REQUEST} \ /+729/start-page.asp\?cid=4004($|\ |\&)
RewriteRule ^ /johns-start-page? [L,R=301]

RewriteCond %{THE_REQUEST} \ /+729/start-page.asp\?cid=7916($|\ |\&)
RewriteRule ^ /judys-start-page? [L,R=301]

RewriteRule ^johns-start-page$ /729/start-page.asp?cid=4004 [L,QSA]
RewriteRule ^judys-start-page$ /729/start-page.asp?cid=7916 [L,QSA]

Для поддоменов вам нужно убедиться, что у вас есть настройка DNS, чтобы указать эти поддомены на один и тот же IP-адрес. Затем что-то вроде:

RewriteEngine On

RewriteCond %{HTTP_HOST} !^johns-start-page\.example\.com$ [NC]
RewriteCond %{THE_REQUEST} \ /+729/start-page.asp\?cid=4004($|\ |\&)
RewriteRule ^ http://johns-start-page.example.com/? [L,R=301]

RewriteCond %{HTTP_HOST} !^judys-start-page\.example\.com$ [NC]
RewriteCond %{THE_REQUEST} \ /+729/start-page.asp\?cid=7916($|\ |\&)
RewriteRule ^ http://judys-start-page.example.com/? [L,R=301]

RewriteCond %{HTTP_HOST} ^johns-start-page\.example\.com$ [NC]
RewriteRule ^$ /729/start-page.asp?cid=4004 [L,QSA]

RewriteCond %{HTTP_HOST} ^judys-start-page\.example\.com$ [NC]
RewriteRule ^$ /729/start-page.asp?cid=7916 [L,QSA]

Но все ваши ссылки могут не работать, если вы не настроите их для включения полного доменного имени.

person Jon Lin    schedule 04.09.2015