Как замаскировать URL с помощью переменных (.htaccess) - PullRequest
1 голос
/ 13 декабря 2011

Я видел похожие вопросы к моему, но это не относится к моему конкретному примеру.

1-й URL (который должен быть отправлен на сервер и первоначально введен в адресную строку): www.site.com/?variable1=3&variable2=filename.php

2-й URL (то, что отображается пользователю в строке URL): www.site.com/filename.php

где «filename.php» совпадает со значением «variable2» в исходном URL.

Я видел примеры противоположного , где кто-то вводит 2-й URL-адрес и заменяет его на 1-й URL-адрес, но это не то, что я хочу.

В настоящее время, что у меня есть:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteRule    ^/([A-Za-z0-9]+)$    /?CommID=$1&FileName=$2    [NC,L]

который я получил структуру по ссылке, предоставленной на этот вопрос , но это не работает.

Я не пытаюсь перенаправить , просто замаскируйте текущий URL, чтобы он был оптимизирован для SEO. Мне нужно извлечь обе переменные из URL-адреса, чтобы динамическое содержимое отображалось правильно.

Есть идеи?

1 Ответ

1 голос
/ 13 декабря 2011

Попробуйте добавить следующее в ваш файл .htaccess в корне вашего домена.

Options +FollowSymLinks
RewriteEngine On
RewriteBase /

#if the query string has a commid and a fIlename Param
RewriteCond %{QUERY_STRING} ^CommID=([^&]+)&FileName=([^&]+) [NC]
#redirect users to the Pretty URL of www.site.com/variable1/filename.php
RewriteRule .* /%1/%2? [L,R=301]

#for a URL like this in address bar www.site.com/variable1/filename.php
#CommID will contain variable1 and FileName will contain filename.php
RewriteRule    ^([A-Za-z0-9]+)/([A-Za-z0-9\.]+)$    /?CommID=$1&FileName=$2    [NC,L]

Редактировать: также перенаправлять пользователей, используя URL-адрес строки запроса, на симпатичный URL

...