Могу ли я сделать это с помощью файла .htaccess?

#.htaccess #url #rewrite

#.htaccess #url #переписать

Вопрос:

Я использую хост, который позволяет размещать файлы PHP только в поддиректоре с именем /cgi/

Но теперь все мои ссылки /cgi/..

Извините за глупость, но могу ли я переписать свой файл .htaccess, чтобы сайт считал, что /cgi/ это корень, чтобы все мои ссылки и сам сайт отображались в корне?

Это то, что у меня есть, но это вызывает ошибку 500 :

 # Turn on rewrites.
RewriteEngine on

# Only apply to URLs on this domain
RewriteCond %{HTTP_HOST} ^(www.)?thegrancenturions.com$

# Only apply to URLs that aren't already under folder.
RewriteCond %{REQUEST_URI} !^/cgi/

# Don't apply to URLs that go to existing files or folders.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# Rewrite all those to insert /folder.
RewriteRule ^(.*)$ /cgi/$1

# Also redirect the root folder.
RewriteCond %{HTTP_HOST} ^(www.)?thegrancenturions.com$
RewriteRule ^(/)?$ cgi/index.php [L]
  

Комментарии:

1. Разрешает ли ваш хост перезапись вообще? Если они заставляют вас вставлять PHP, /cgi/ я был бы удивлен, если бы они позволили вам многое переопределить .htaccess

2. Да, они сказали, что поместят HTML-файл в корень и перенаправят его..

Ответ №1:

 RewriteEngine On
RewriteRule ^(. ?)$ cgi/$1 [QSA,L]
  

Я не тестировал это, но что-то похожее на это должно работать. Вам также может потребоваться добавить a RewriteCond , который проверяет, что входящие запросы не для /cgi/..