Intereting Posts
Отношение MySQL к нескольким таблицам Как закрепить всю папку с помощью PHP Как преобразовать код из C # в PHP Как получить значение гендерного переключателя (мужчины, женщины) с CodeIgniter? Как загрузить файлы (multipart / form-data) с помощью многомерных POSTFIELDS с помощью PHP и CURL? Как отключить кнопку заднего браузера после того, как пользователь выйдет из системы и уничтожит сеанс? Создать выпадающий список из значения в базе данных php В zend, как правильно напечатать запрос mysql? netbeans autocompletion при использовании singleton для извлечения объекта вместо нового оператора? удаление пароля из закрытого ключа rsa Естественный вид заголовков WordPress (в алфавитном и цифровом формате)? Невозможно обработать исключение SQL с try-catch Как мне пройти через массив PHP, содержащий данные, возвращаемые из MySQL? Сортировка массивов по дате Внедрение передового опыта PHP Event-Listener

htaccess 301 перенаправление для URL с параметром

В моем файле htaccess есть следующее: URL-адрес, например: www.example.com/Page.php?id=About, и превращает его в www.example.com/about. Единственная проблема заключается в том, что старые URL-адреса не перенаправляются на новые URL-адреса, когда я настроил Redirect 301s в htaccess (я понимаю это потому, что вы не должны передавать параметры в базовом Redirect 301s – пример базового перенаправления, вы пробовали ниже).

Redirect 301 /Page.php?id=About http://www.example.com/about 

Уловка заключается в том, что новые URL-адреса необязательно просто вытесняют текущий идентификатор и заменяют его строчной версией. Например, я также хотел бы:

 Redirect 301 /Page.php?id=Example http://www.example.com/example-page 

Я хочу сохранить текущую функциональность переписывания URL-адресов, но также хочу, чтобы любые обращения к старым URL-адресам перенаправлялись на новые (т. Е. Обновлять индекс Google). Посещение www.example.com/Page.php?id=About в настоящий момент по-прежнему работает, но показывает страницу без содержания.

 Options +FollowSymLinks RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([a-zA-Z0-9\-]+)/?$ Page.php?id=$1 RewriteRule ^([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/?$ Page.php?id=$1&tab=$2 RewriteRule ^([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/?$ Page.php?id=$1&tab=$2&tabid=$3 

Если вы добавите это правило в свой .htaccess, он должен выполнить работу с Redirect. Он добавит? Id = О в перенаправление на / о. Если вы работаете с версией 2.4.0 или новее, вы можете добавить флаг QSD для отказа от строки запроса в перенаправлении.

 RewriteCond %{QUERY_STRING} ^id=About$ RewriteRule ^page.php /about [NC,R,L]