Я только что перестроил существующий сайт с нуля. Старый сайт использовал чистый HTML, в то время как новый сайт будет рисовать контент из базы данных. Теперь мне нужно перенаправить старые страницы в новую структуру URL, но я не знаю, как написать правила .htaccess для перенаправления файлов в файл.Что такое путь в .htaccess 301 Перенаправлять относительно?
Во всех примерах я ’ ве нашел, первая часть правила выглядит абсолютный путь к каталогу от корня, но они содержат только часть URL, который непосредственно следует имя домена.
Например, я хочу, чтобы перенаправить
https://garrettcounty.us/archives/12262011news.html
в
https://garrettcounty.us/news/20111226/house-fire-on-christmas-day
Из примеров, которые я ’ видел (как на StackOverflow и за рубежом), я предполагаю, что это правило будет
redirect 301 /archives/12262011news.html https://garrettcounty.us/news/20111226/house-fire-on-christmas-day
, но фактический путь к исходному файлу на сервере:
/дома/имя пользователя /public_html/archives/12262011news.html
Должен ли я использовать путь к папке или путь от домена?
Я хотел бы иметь возможность использовать правило перезаписи. К сожалению, оригинальный разработчик Ждет ’ т использовать последовательные именование файлы схемы, так что я ’ м сталкивается с такими вещами, как
12262011news.html
Jan-19-2012-Headlines.html
State-Of-The-Union-25jan2012.html
В новой модели, я предписывающее все через index.php с
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
</IfModule>
, так что, если кто-нибудь знает более простой способ сопоставить все старые страницы с новыми URL-адресами, я хотел бы это услышать. Как бы то ни было, похоже, что я должен перенаправить 70+ страниц один за другим.
Новые URI будут принимать форму/раздел/дату/название-slug, где раздел может быть новостями, медицинскими, редакционными и т. Д. Датой всегда является YYYYMMDD по новой схеме.Некоторые из старых URL-адресов имеют заголовки, другие - нет. Это были всего лишь несколько примеров, которые я схватил. Я очень хорошо знаком с регулярными выражениями, но в старой схеме имен «схема» абсолютно нет согласованности. Я считаю, что переписать не может быть и речи. Мой основной вопрос: должен ли я использовать абсолютный путь к каталогу или путь из домена? Я смущен этой частью, поскольку все, что я нашел, немного неоднозначно. – Herbert
Для mod_alias или mod_rewrite вам необходимо использовать путь от DOCUMENT_ROOT, а не полный путь к файловой системе. Вы правы, невозможно изменить правило перезаписи с такой несогласованностью в соглашении об именах. – anubhava
Я предполагаю тогда, что путь относится к DOCUMENT_ROOT для «перенаправления». Эта небольшая часть информации пропала без вести с каждого того, что я читал. Спасибо вам за помощь anubhava. – Herbert