function file_create_htaccess
7.x file.inc | file_create_htaccess($directory, |
6.x file.inc | file_create_htaccess($directory, $form_item = NULL, $force_overwrite = FALSE) |
Creates a .htaccess file in the given directory.
Parameters
$directory: The directory.
$private: FALSE indicates that $directory should be an open and public directory. The default is TRUE which indicates a private and protected directory.
$force_overwrite: Set to TRUE to attempt to overwrite the existing .htaccess file if one is already present. Defaults to FALSE.
Related topics
2 calls to file_create_htaccess()
- file_ensure_htaccess in drupal-7.x/
includes/ file.inc - Creates a .htaccess file in each Drupal files directory if it is missing.
- system_check_directory in drupal-7.x/
modules/ system/ system.module - Checks the existence of the directory specified in $form_element.
File
- drupal-7.x/
includes/ file.inc, line 477 - API for handling file uploads and server file management.
Code
function file_create_htaccess($directory, $private = TRUE, $force_overwrite = FALSE) {
if (file_uri_scheme($directory)) {
$directory = file_stream_wrapper_uri_normalize($directory);
}
else {
$directory = rtrim($directory, '/\\');
}
$htaccess_path = $directory . '/.htaccess';
if (file_exists($htaccess_path) && !$force_overwrite) {
// Short circuit if the .htaccess file already exists.
return;
}
$htaccess_lines = file_htaccess_lines($private);
// Write the .htaccess file.
if (file_put_contents($htaccess_path, $htaccess_lines)) {
drupal_chmod($htaccess_path, 0444);
}
else {
$variables = array('%directory' => $directory, '!htaccess' => '<br />' . nl2br(check_plain($htaccess_lines)));
watchdog('security', "Security warning: Couldn't write .htaccess file. Please create a .htaccess file in your %directory directory which contains the following lines: <code>!htaccess</code>", $variables, WATCHDOG_ERROR);
}
}