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? Видя, что он будет существовать только при первой настройке сайта?

640   1  

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

    Ничего не найдено.