Мне нужно превратить мой предыдущий сайт с Wordpress в одностраничный сайт. Мой сайт может содержать только целевую страницу, и я хочу, чтобы все старые URL-адреса были перенаправлены на 301 в корень моего сайта.
У меня это работает, но не совсем так, как я бы предпочел. В настоящее время все перенаправляется на mysite.com/index.html, но я хочу, чтобы они направлялись непосредственно на mysite.com.
Вот код перенаправления, который я использую в своих тегах location / {}:
try_files $uri $uri/ /index.php?q=$uri&$args;
if ( $uri !~ ^/(index\.php|css|images|uploads|js|robots\.txt|favicon\.ico|wp-admin|launch|wp-login\.php|inc) ) {
rewrite ^ http://www.mysite.com/index.html permanent;
}
Этот фрагмент кода перенаправляет все, кроме тех конкретных каталогов и файлов, которые я перечислил. Таким образом, я все еще могу получить доступ к своему каталогу wp-admin для добавления контента в Wordpress, поэтому, когда я нажму на переключатель позже, я могу снова включить сайт и обновить весь контент и подготовить его к запуску.
Если я удалю index.html из приведенного выше перенаправления, мой сайт перейдет в цикл перенаправления. Если я сделаю правило перезаписи просто указывающим на /, тогда мой сайт также перейдет в цикл перенаправления.
Может ли кто-нибудь помочь мне обновить этот код, чтобы index.html не отображал окно браузера в качестве фактического URL-адреса? Мне бы очень хотелось, чтобы фактический URL-адрес был www.mysite.com, а не www.mysite.com/index.html.
РЕДАКТИРОВАТЬ:
Что мне действительно нужно, так это указать корневой каталог в моем операторе! ~. Но если я добавлю | / | он позволяет игнорировать все файлы и подкаталоги ... что означает, что мое правило перенаправления никогда не вызывается.
Могу ли я указать только корневой каталог и не включать какие-либо файлы или подкаталоги в этот корневой каталог? Таким образом, я могу сказать nginx не перенаправлять на / моего домена, но если он найдет /index.html, он перенаправит на /.
Я вижу два пути:
|$
регулярное выражениеlocation = /
и заставьте его запускать /index.php на любом используемом PHP-сервере (возможно, установив fastcgi_param SCRIPT_FILENAME .../index.php;