Таким образом, я использую следующий код htaccess для перенаправления URL-адресов для очистки перспективных URL-адресов, но теперь мне нужно, чтобы исходные URL-адреса перенаправлялись на новые чистые URL-адреса.Перенаправление путем запроса значения базы данных, такого как URL-адреса stackoverflow.com
Пример
Оригинальный URL:
example.com/search/store_info.php?store=113&dentist=Dr.%20John%20Doe
Clean URL:
example.com/search/113/dr-john-doe
Что мне нужно, это "ОРИГИНАЛ URL" для перенаправления на "ЧИСТОЙ URL ". Причина, по которой мне это нужно, заключается в том, что оба URL-адреса отображаются в результатах поиска Google.
Я хочу, чтобы чистый URL отображался, и в любое время, когда используется оригинальный URL, он должен автоматически перенаправляться на чистый URL. В настоящее время это не так.
Вот мой файл htaccess.
ErrorDocument 404 default
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteBase /search/
RewriteCond %{QUERY_STRING} .
RewriteCond %{THE_REQUEST} /store_info\.php\?store=([a-z0-9]+)&dentist=([^\s&]+) [NC]
RewriteRule^%1/%2/? [L,NE,R=301]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_URI} \.(?:jpe?g|gif|bmp|png|ico|tiff|css|js)$ [NC]
RewriteRule^- [L]
RewriteRule ^([a-z0-9]+)/([^\s.]*)[.\s]+(.*)$ $1/$2-$3 [NC,DPI,E=DONE:1]
RewriteCond %{ENV:DONE} =1
RewriteRule ^([0-9a-z]+)/([^\s.]+)$ $1/$2 [R=301,NE,L]
RewriteRule ^([a-z0-9]+)/([a-z0-9-]+)/?$ store_info.php?store=$1&dentist=$2 [QSA,L,NC]
</IfModule>
Я читал о RedirectMatch однако я не знаю, где реализовать его в свой файл Htaccess.
@anubhava это не перенаправляет .. так что если я иду в 'example.com/search/store_info.php магазин = 113' без" & dentist = Dr.% 20John% 20Doe "в URL-адресе идет по исходному URL-адресу и не конвертируется в чистую версию URL-адреса. Я хочу изменить это, где 'example.com/search/store_info.php? Store = 113' также переходит на чистый URL. Я пробовал 'Перенаправление 301 /search/store_info.php?store=118 http: // www.example.com/search/118/John-Doe-Dental-Group /' – antivinegar
Могу ли я добавить, что ' & dentist = Dr.% 20John% 20Doe' добавляется к строке URL с помощью кнопки с предыдущей страницы. поэтому 'example.com/search/ store_info.php? store = 113' является исходным URL-адресом, который захватывает имя дантиста из URL-адреса, а затем использует файл htaccess для создания чистого URL-адреса. – antivinegar
@anubhava, поэтому нет способа сделать это как [this] (http://stackoverflow.com/questions/38453161/rewriting-old-urls-to-pretty-urls-and-redirect-old-urls- к новой с-HTAccess)? Я знаю, что есть способ в файлах web.config. но я не могу понять в htaccess. – antivinegar