*/
/** WordPress Administration Bootstrap */
-require_once('./admin.php');
+require_once( dirname( __FILE__ ) . '/admin.php' );
if ( ! current_user_can( 'manage_options' ) )
wp_die( __( 'You do not have sufficient permissions to manage options for this site.' ) );
'<p><strong>' . __('For more information:') . '</strong></p>' .
'<p>' . __('<a href="http://codex.wordpress.org/Settings_Permalinks_Screen" target="_blank">Documentation on Permalinks Settings</a>') . '</p>' .
'<p>' . __('<a href="http://codex.wordpress.org/Using_Permalinks" target="_blank">Documentation on Using Permalinks</a>') . '</p>' .
- '<p>' . __('<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
+ '<p>' . __('<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
);
/**
}
add_filter('admin_head', 'options_permalink_add_js');
-include('./admin-header.php');
-
$home_path = get_home_path();
$iis7_permalinks = iis7_supports_permalinks();
$prefix = $blog_prefix = '';
-if ( ! got_mod_rewrite() && ! $iis7_permalinks )
+if ( ! got_url_rewrite() )
$prefix = '/index.php';
if ( is_multisite() && !is_subdomain_install() && is_main_site() )
$blog_prefix = '/blog';
$wp_rewrite->set_tag_base( $tag_base );
}
- create_initial_taxonomies();
+ wp_redirect( admin_url( 'options-permalink.php?settings-updated=true' ) );
+ exit;
}
-$permalink_structure = get_option('permalink_structure');
-$category_base = get_option('category_base');
-$tag_base = get_option( 'tag_base' );
+$permalink_structure = get_option( 'permalink_structure' );
+$category_base = get_option( 'category_base' );
+$tag_base = get_option( 'tag_base' );
+$update_required = false;
if ( $iis7_permalinks ) {
if ( ( ! file_exists($home_path . 'web.config') && win_is_writable($home_path) ) || win_is_writable($home_path . 'web.config') )
$writable = true;
else
$writable = false;
+} elseif ( $is_nginx ) {
+ $writable = false;
} else {
- if ( ( ! file_exists($home_path . '.htaccess') && is_writable($home_path) ) || is_writable($home_path . '.htaccess') )
+ if ( ( ! file_exists( $home_path . '.htaccess' ) && is_writable( $home_path ) ) || is_writable( $home_path . '.htaccess' ) ) {
$writable = true;
- else
+ } else {
$writable = false;
+ $existing_rules = array_filter( extract_from_markers( $home_path . '.htaccess', 'WordPress' ) );
+ $new_rules = array_filter( explode( "\n", $wp_rewrite->mod_rewrite_rules() ) );
+ $update_required = ( $new_rules !== $existing_rules );
+ }
}
if ( $wp_rewrite->using_index_permalinks() )
flush_rewrite_rules();
-if (isset($_POST['submit'])) : ?>
+require( ABSPATH . 'wp-admin/admin-header.php' );
+
+if ( ! empty( $_GET['settings-updated'] ) ) : ?>
<div id="message" class="updated"><p><?php
if ( ! is_multisite() ) {
if ( $iis7_permalinks ) {
_e('Permalink structure updated. Remove write access on web.config file now!');
else
_e('Permalink structure updated.');
+ } elseif ( $is_nginx ) {
+ _e('Permalink structure updated.');
} else {
- if ( $permalink_structure && ! $usingpi && ! $writable )
+ if ( $permalink_structure && ! $usingpi && ! $writable && $update_required ) {
_e('You should update your .htaccess now.');
- else
+ } else {
_e('Permalink structure updated.');
+ }
}
} else {
_e('Permalink structure updated.');
<?php endif; ?>
<div class="wrap">
-<?php screen_icon(); ?>
<h2><?php echo esc_html( $title ); ?></h2>
<form name="form" action="options-permalink.php" method="post">
<?php wp_nonce_field('update-permalink') ?>
- <p><?php _e('By default WordPress uses web <abbr title="Universal Resource Locator">URL</abbr>s which have question marks and lots of numbers in them, however WordPress offers you the ability to create a custom URL structure for your permalinks and archives. This can improve the aesthetics, usability, and forward-compatibility of your links. A <a href="http://codex.wordpress.org/Using_Permalinks">number of tags are available</a>, and here are some examples to get you started.'); ?></p>
+ <p><?php _e('By default WordPress uses web <abbr title="Universal Resource Locator">URL</abbr>s which have question marks and lots of numbers in them; however, WordPress offers you the ability to create a custom URL structure for your permalinks and archives. This can improve the aesthetics, usability, and forward-compatibility of your links. A <a href="http://codex.wordpress.org/Using_Permalinks">number of tags are available</a>, and here are some examples to get you started.'); ?></p>
<?php
if ( is_multisite() && !is_subdomain_install() && is_main_site() ) {
4 => $prefix . '/%postname%/',
);
?>
-<h3><?php _e('Common Settings'); ?></h3>
+<h3 class="title"><?php _e('Common Settings'); ?></h3>
<table class="form-table permalink-structure">
<tr>
<th><label><input name="selection" type="radio" value="" <?php checked('', $permalink_structure); ?> /> <?php _e('Default'); ?></label></th>
</tr>
</table>
-<h3><?php _e('Optional'); ?></h3>
+<h3 class="title"><?php _e('Optional'); ?></h3>
<?php
-$suffix = '';
-if ( ! $is_apache && ! $iis7_permalinks )
- $suffix = 'index.php/';
+$suffix = $prefix;
+if ( $suffix )
+ $suffix = ltrim( $suffix, '/' ) . '/';
?>
<p><?php
/* translators: %s is a placeholder that must come at the start of the URL path. */
<p><?php _e('If you temporarily make your site’s root directory writable for us to generate the <code>web.config</code> file automatically, do not forget to revert the permissions after the file has been created.') ?></p>
<?php endif; ?>
<?php endif; ?>
-<?php else :
- if ( $permalink_structure && ! $usingpi && ! $writable ) : ?>
+<?php elseif ( ! $is_nginx ) :
+ if ( $permalink_structure && ! $usingpi && ! $writable && $update_required ) : ?>
<p><?php _e('If your <code>.htaccess</code> file were <a href="http://codex.wordpress.org/Changing_File_Permissions">writable</a>, we could do this automatically, but it isn’t so these are the mod_rewrite rules you should have in your <code>.htaccess</code> file. Click in the field and press <kbd>CTRL + a</kbd> to select all.') ?></p>
<form action="options-permalink.php" method="post">
<?php wp_nonce_field('update-permalink') ?>
</div>
-<?php require('./admin-footer.php'); ?>
+<?php require( ABSPATH . 'wp-admin/admin-footer.php' ); ?>