htaccess перенаправления, если папка существует еще перенаправить в другую папку
Я хотел бы перенаправить htaccess в определенную папку "setup", если она существует.
Иначе он должен сделать стандартный редирект акций, как это было :
RewriteEngine on
RewriteCond %{THE_REQUEST} ^(.+).php([#?][^ ]*)? HTTP/
RewriteRule ^(.+).php$ http://%{HTTP_HOST}/$1 [L]
RewriteBase /
RewriteRule ^$ /site [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . /api/index.php [L]
Теперь мои htaccess-Fu находятся далеко не там, где они должны быть. Я читал сообщения, которые мог найти на SO, но ни одно из них не помогло для моего конкретного случая.
Тогда у меня есть под-вопрос: это плохая практика, чтобы иметь это постоянно в вашем файле htaccess? Видя, что он будет существовать только при первой настройке сайта?
1 ответ:
Я часто вижу, как люди делают это через PHP, но делать это через htaccess действительно кажется отличной альтернативой!
Итак, вы ищете что-то вроде:
RewriteEngine on # The part your looking for: If setup is present and you're not in it redirect there! # If the setup directory exists in the document root... RewriteCond %{DOCUMENT_ROOT}/setup -d # ...and you're not in setup.. RewriteCond %{REQUEST_URI} !(setup) [NC] # ...redirect to setup - with a 302 (temporary redirect) to make sure the browser won't cache the redirect. RewriteRule ^(.*) /setup [L,redirect=302] # the rest of your htaccess should go here... for instance: RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule . index.php [L]
Comments