WordPress.org

Ready to get started?Download WordPress

Forums

[resolved] Index.html (45 posts)

  1. formerfatguy
    Member
    Posted 5 years ago #

    I have a situation where I'm running .asp AND .php on the same server / same website.

    my website formerfatguy.com has been up since 1998 using microsoft active server pages.

    I'm now building a wordpress blog on top of it (and building it behind the scene as my .asp website is still functional)

    I have my .htaccess file set to default to index.asp as my default pages while I work on the new blog.

    To see my blog front page, I simply add index.php to my domain name and I can see what my front page looks like.

    after upgrading to 2.7, it re-directs automatically and I can no longer work on it. I'll have to see if the suggested work around takes care of this for me in the mean time.

    what a pain

  2. LiZharD
    Member
    Posted 5 years ago #

    Thanks Chris.
    Works with charme ;) nice solution!

    As i said previously: kmessinger has no solution and i cheerfully ignore his post. This is the end of the story.

    Waiting a fix in the next official release. For now, thanks again Chris.

  3. flick
    Member
    Posted 5 years ago #

    Phew, nice to know there is a workaround ;)

    I did try kmessinger's solution, but unfortunately it didn't quite work for me. I am still a little worried about replacing green wit hred as suggested by ChrisThomson, but this does seem to be the way forward at the moment, so thank you.

    Like some of the others have said, I also have a index.html as my 'info' page to redirect users to a temporary site hosted elsewhere (they have to click on the link) whilst I work on the WordPress version of the existing site and it was very useful for testing to have this setup.

    Bearing in mind I only use this for one site out of the very few that I run, it may not be a problem that everyone will face.

  4. THE11thROCK
    Member
    Posted 5 years ago #

    Can anyone see here what's wrong with my code? My /index.html still redirects to itself but not /index.php.

    <?php
    /**
     * Canonical API to handle WordPress Redirecting
     *
     * Based on "Permalink Redirect" from Scott Yang and "Enforce www. Preference"
     * by Mark Jaquith
     *
     * @author Scott Yang
     * @author Mark Jaquith
     * @package WordPress
     * @since 2.3.0
     */
    
    /**
     * Redirects incoming links to the proper URL based on the site url.
     *
     * Search engines consider www.somedomain.com and somedomain.com to be two
     * different URLs when they both go to the same location. This SEO enhancement
     * prevents penality for duplicate content by redirecting all incoming links to
     * one or the other.
     *
     * Prevents redirection for feeds, trackbacks, searches, comment popup, and
     * admin URLs. Does not redirect on IIS, page/post previews, and on form data.
     *
     * Will also attempt to find the correct link when a user enters a URL that does
     * not exist based on exact WordPress query. Will instead try to parse the URL
     * or query in an attempt to figure the correct page to go to.
     *
     * @since 2.3.0
     * @uses $wp_rewrite
     * @uses $is_IIS
     *
     * @param string $requested_url Optional. The URL that was requested, used to
     *		figure if redirect is needed.
     * @param bool $do_redirect Optional. Redirect to the new URL.
     * @return null|false|string Null, if redirect not needed. False, if redirect
     *		not needed or the string of the URL
     */
    function redirect_canonical($requested_url=null, $do_redirect=true) {
    	global $wp_rewrite, $is_IIS, $wp_query, $wpdb;
    
    	if ( is_trackback() || is_search() || is_comments_popup() || is_admin() || $is_IIS || ( isset($_POST) && count($_POST) ) || is_preview() || is_robots() )
    		return;
    
    	if ( !$requested_url ) {
    		// build the URL in the address bar
    		$requested_url  = ( !empty($_SERVER['HTTPS'] ) && strtolower($_SERVER['HTTPS']) == 'on' ) ? 'https://' : 'http://';
    		$requested_url .= $_SERVER['HTTP_HOST'];
    		$requested_url .= $_SERVER['REQUEST_URI'];
    	}
    
    	$original = @parse_url($requested_url);
    	if ( false === $original )
    		return;
    
    	// Some PHP setups turn requests for / into /index.php in REQUEST_URI
            $original['path'] = preg_replace('|/index\.php$|', '/', $original['path']);
    
    	$redirect = $original;
    	$redirect_url = false;
    
    	// Notice fixing
    	if ( !isset($redirect['path']) )  $redirect['path'] = '';
    	if ( !isset($redirect['query']) ) $redirect['query'] = '';
    
    	if ( is_singular() && 1 > $wp_query->post_count && ($id = get_query_var('p')) ) {
    
    		$vars = $wpdb->get_results( $wpdb->prepare("SELECT post_type, post_parent FROM $wpdb->posts WHERE ID = %d", $id) );
    
    		if ( isset($vars[0]) && $vars = $vars[0] ) {
    			if ( 'revision' == $vars->post_type && $vars->post_parent > 0 )
    				$id = $vars->post_parent;
    
    			if ( $redirect_url = get_permalink($id) )
    				$redirect['query'] = remove_query_arg(array('p', 'page_id', 'attachment_id'), $redirect['query']);
    		}
    	}
    
    	// These tests give us a WP-generated permalink
    	if ( is_404() ) {
    		$redirect_url = redirect_guess_404_permalink();
    	} elseif ( is_object($wp_rewrite) && $wp_rewrite->using_permalinks() ) {
    		// rewriting of old ?p=X, ?m=2004, ?m=200401, ?m=20040101
    		if ( is_single() && !empty($_GET['p']) && ! $redirect_url ) {
    			if ( $redirect_url = get_permalink(get_query_var('p')) )
    				$redirect['query'] = remove_query_arg('p', $redirect['query']);
    			if ( get_query_var( 'page' ) ) {
    				$redirect_url = trailingslashit( $redirect_url ) . user_trailingslashit( get_query_var( 'page' ), 'single_paged' );
    				$redirect['query'] = remove_query_arg( 'page', $redirect['query'] );
    			}
    		} elseif ( is_page() && !empty($_GET['page_id']) && ! $redirect_url ) {
    			if ( $redirect_url = get_permalink(get_query_var('page_id')) )
    				$redirect['query'] = remove_query_arg('page_id', $redirect['query']);
    		} elseif ( !empty($_GET['m']) && ( is_year() || is_month() || is_day() ) ) {
    			$m = get_query_var('m');
    			switch ( strlen($m) ) {
    				case 4: // Yearly
    					$redirect_url = get_year_link($m);
    					break;
    				case 6: // Monthly
    					$redirect_url = get_month_link( substr($m, 0, 4), substr($m, 4, 2) );
    					break;
    				case 8: // Daily
    					$redirect_url = get_day_link(substr($m, 0, 4), substr($m, 4, 2), substr($m, 6, 2));
    					break;
    			}
    			if ( $redirect_url )
    				$redirect['query'] = remove_query_arg('m', $redirect['query']);
    		// now moving on to non ?m=X year/month/day links
    		} elseif ( is_day() && get_query_var('year') && get_query_var('monthnum') && !empty($_GET['day']) ) {
    			if ( $redirect_url = get_day_link(get_query_var('year'), get_query_var('monthnum'), get_query_var('day')) )
    				$redirect['query'] = remove_query_arg(array('year', 'monthnum', 'day'), $redirect['query']);
    		} elseif ( is_month() && get_query_var('year') && !empty($_GET['monthnum']) ) {
    			if ( $redirect_url = get_month_link(get_query_var('year'), get_query_var('monthnum')) )
    				$redirect['query'] = remove_query_arg(array('year', 'monthnum'), $redirect['query']);
    		} elseif ( is_year() && !empty($_GET['year']) ) {
    			if ( $redirect_url = get_year_link(get_query_var('year')) )
    				$redirect['query'] = remove_query_arg('year', $redirect['query']);
    		} elseif ( is_category() && !empty($_GET['cat']) ) {
    			if ( $redirect_url = get_category_link(get_query_var('cat')) )
    				$redirect['query'] = remove_query_arg('cat', $redirect['query']);
    		} elseif ( is_author() && !empty($_GET['author']) ) {
    			$author = get_userdata(get_query_var('author'));
    			if ( false !== $author && $redirect_url = get_author_posts_url($author->ID, $author->user_nicename) )
    				$redirect['query'] = remove_query_arg('author', $redirect['author']);
    		}
    
    	// paging and feeds
    		if ( get_query_var('paged') || is_feed() || get_query_var('cpage') ) {
    			if ( !$redirect_url )
    				$redirect_url = $requested_url;
    			$paged_redirect = @parse_url($redirect_url);
    			while ( preg_match( '#/page/[0-9]+?(/+)?$#', $paged_redirect['path'] ) || preg_match( '#/(comments/?)?(feed|rss|rdf|atom|rss2)(/+)?$#', $paged_redirect['path'] ) || preg_match( '#/comment-page-[0-9]+(/+)?$#', $paged_redirect['path'] ) ) {
    				// Strip off paging and feed
    				$paged_redirect['path'] = preg_replace('#/page/[0-9]+?(/+)?$#', '/', $paged_redirect['path']); // strip off any existing paging
    				$paged_redirect['path'] = preg_replace('#/(comments/?)?(feed|rss2?|rdf|atom)(/+)?$#', '/', $paged_redirect['path']); // strip off feed endings
    				$paged_redirect['path'] = preg_replace('#/comment-page-[0-9]+?(/+)?$#', '/', $paged_redirect['path']); // strip off any existing comment paging
    			}
    
    			$addl_path = '';
    			if ( is_feed() ) {
    				$addl_path = !empty( $addl_path ) ? trailingslashit($addl_path) : '';
    				if ( get_query_var( 'withcomments' ) )
    					$addl_path .= 'comments/';
    				$addl_path .= user_trailingslashit( 'feed/' . ( ( 'rss2' ==  get_query_var('feed') || 'feed' == get_query_var('feed') ) ? '' : get_query_var('feed') ), 'feed' );
    				$redirect['query'] = remove_query_arg( 'feed', $redirect['query'] );
    			}
    
    			if ( get_query_var('paged') > 0 ) {
    				$paged = get_query_var('paged');
    				$redirect['query'] = remove_query_arg( 'paged', $redirect['query'] );
    				if ( !is_feed() ) {
    					if ( $paged > 1 && !is_single() ) {
    						$addl_path = ( !empty( $addl_path ) ? trailingslashit($addl_path) : '' ) . user_trailingslashit("page/$paged", 'paged');
    					} elseif ( !is_single() ) {
    						$addl_path = ( !empty( $addl_path ) ? trailingslashit($addl_path) : '' ) . user_trailingslashit($paged_redirect['path'], 'paged');
    					}
    				} elseif ( $paged > 1 ) {
    					$redirect['query'] = add_query_arg( 'paged', $paged, $redirect['query'] );
    				}
    			}
    
    			if ( get_option('page_comments') && ( ( 'newest' == get_option('default_comments_page') && get_query_var('cpage') > 0 ) || ( 'newest' != get_option('default_comments_page') && get_query_var('cpage') > 1 ) ) ) {
    				$addl_path = ( !empty( $addl_path ) ? trailingslashit($addl_path) : '' ) . user_trailingslashit( 'comment-page-' . get_query_var('cpage'), 'commentpaged' );
    				$redirect['query'] = remove_query_arg( 'cpage', $redirect['query'] );
    			}
    
    			$paged_redirect['path'] = user_trailingslashit( preg_replace('|/index.php/?$|', '/', $paged_redirect['path']) ); // strip off trailing /index.php/
    			if ( !empty( $addl_path ) && $wp_rewrite->using_index_permalinks() && strpos($paged_redirect['path'], '/index.php/') === false )
    				$paged_redirect['path'] = trailingslashit($paged_redirect['path']) . 'index.php/';
    			if ( !empty( $addl_path ) )
    				$paged_redirect['path'] = trailingslashit($paged_redirect['path']) . $addl_path;
    			$redirect_url = $paged_redirect['scheme'] . '://' . $paged_redirect['host'] . $paged_redirect['path'];
    			$redirect['path'] = $paged_redirect['path'];
    		}
    	}
    
    	// tack on any additional query vars
    	$redirect['query'] = preg_replace( '#^\??&*?#', '', $redirect['query'] );
    	if ( $redirect_url && !empty($redirect['query']) ) {
    		if ( strpos($redirect_url, '?') !== false )
    			$redirect_url .= '&';
    		else
    			$redirect_url .= '?';
    		$redirect_url .= $redirect['query'];
    	}
    
    	if ( $redirect_url )
    		$redirect = @parse_url($redirect_url);
    
    	// www.example.com vs example.com
    	$user_home = @parse_url(get_option('home'));
    	if ( !empty($user_home['host']) )
    		$redirect['host'] = $user_home['host'];
    	if ( empty($user_home['path']) )
    		$user_home['path'] = '/';
    
    	// Handle ports
    	if ( !empty($user_home['port']) )
    		$redirect['port'] = $user_home['port'];
    	else
    		unset($redirect['port']);
    
            // trailing /index.php/
            $redirect['path'] = preg_replace('|/index.php/$|', '/', $redirect['path']);
    
    	// Remove trailing spaces from the path
    	$redirect['path'] = preg_replace( '#(%20| )+$#', '', $redirect['path'] );
    
    	if ( !empty( $redirect['query'] ) ) {
    		// Remove trailing spaces from certain terminating query string args
    		$redirect['query'] = preg_replace( '#((p|page_id|cat|tag)=[^&]*?)(%20| )+$#', '$1', $redirect['query'] );
    
    		// Clean up empty query strings
    		$redirect['query'] = trim(preg_replace( '#(^|&)(p|page_id|cat|tag)=?(&|$)#', '&', $redirect['query']), '&');
    
    		// Remove redundant leading ampersands
    		$redirect['query'] = preg_replace( '#^\??&*?#', '', $redirect['query'] );
    	}
    
    	// strip /index.php/ when we're not using PATHINFO permalinks
    	if ( !$wp_rewrite->using_index_permalinks() )
    		$redirect['path'] = str_replace('/index.php/', '/', $redirect['path']);
    
    	// trailing slashes
    	if ( is_object($wp_rewrite) && $wp_rewrite->using_permalinks() && !is_404() && (!is_front_page() || ( is_front_page() && (get_query_var('paged') > 1) ) ) ) {
    		$user_ts_type = '';
    		if ( get_query_var('paged') > 0 ) {
    			$user_ts_type = 'paged';
    		} else {
    			foreach ( array('single', 'category', 'page', 'day', 'month', 'year', 'home') as $type ) {
    				$func = 'is_' . $type;
    				if ( call_user_func($func) ) {
    					$user_ts_type = $type;
    					break;
    				}
    			}
    		}
    		$redirect['path'] = user_trailingslashit($redirect['path'], $user_ts_type);
    	} elseif ( is_front_page() ) {
    		$redirect['path'] = trailingslashit($redirect['path']);
    	}
    
    	// Always trailing slash the Front Page URL
    	if ( trailingslashit( $redirect['path'] ) == trailingslashit( $user_home['path'] ) )
    		$redirect['path'] = trailingslashit($redirect['path']);
    
    	// Ignore differences in host capitalization, as this can lead to infinite redirects
    	// Only redirect no-www <=> yes-www
    	if ( strtolower($original['host']) == strtolower($redirect['host']) ||
    		( strtolower($original['host']) != 'www.' . strtolower($redirect['host']) && 'www.' . strtolower($original['host']) != strtolower($redirect['host']) ) )
    		$redirect['host'] = $original['host'];
    
    	$compare_original = array($original['host'], $original['path']);
    
    	if ( !empty( $original['port'] ) )
    		$compare_original[] = $original['port'];
    
    	if ( !empty( $original['query'] ) )
    		$compare_original[] = $original['query'];
    
    	$compare_redirect = array($redirect['host'], $redirect['path']);
    
    	if ( !empty( $redirect['port'] ) )
    		$compare_redirect[] = $redirect['port'];
    
    	if ( !empty( $redirect['query'] ) )
    		$compare_redirect[] = $redirect['query'];
    
    	if ( $compare_original !== $compare_redirect ) {
    		$redirect_url = $redirect['scheme'] . '://' . $redirect['host'];
    		if ( !empty($redirect['port']) )
    			$redirect_url .= ':' . $redirect['port'];
    		$redirect_url .= $redirect['path'];
    		if ( !empty($redirect['query']) )
    			$redirect_url .= '?' . $redirect['query'];
    	}
    
    	if ( !$redirect_url || $redirect_url == $requested_url )
    		return false;
    
    	// Note that you can use the "redirect_canonical" filter to cancel a canonical redirect for whatever reason by returning FALSE
    	$redirect_url = apply_filters('redirect_canonical', $redirect_url, $requested_url);
    
    	if ( !$redirect_url || $redirect_url == $requested_url ) // yes, again -- in case the filter aborted the request
    		return false;
    
    	if ( $do_redirect ) {
    		// protect against chained redirects
    		if ( !redirect_canonical($redirect_url, false) ) {
    			wp_redirect($redirect_url, 301);
    			exit();
    		} else {
    			// Debug
    			// die("1: $redirect_url<br />2: " . redirect_canonical( $redirect_url, false ) );
    			return false;
    		}
    	} else {
    		return $redirect_url;
    	}
    }
    
    /**
     * Attempts to guess correct post based on query vars.
     *
     * @since 2.3.0
     * @uses $wpdb
     *
     * @return bool|string Returns False, if it can't find post, returns correct
     *		location on success.
     */
    function redirect_guess_404_permalink() {
    	global $wpdb;
    
    	if ( !get_query_var('name') )
    		return false;
    
    	$where = $wpdb->prepare("post_name LIKE %s", get_query_var('name') . '%');
    
    	// if any of year, monthnum, or day are set, use them to refine the query
    	if ( get_query_var('year') )
    		$where .= $wpdb->prepare(" AND YEAR(post_date) = %d", get_query_var('year'));
    	if ( get_query_var('monthnum') )
    		$where .= $wpdb->prepare(" AND MONTH(post_date) = %d", get_query_var('monthnum'));
    	if ( get_query_var('day') )
    		$where .= $wpdb->prepare(" AND DAYOFMONTH(post_date) = %d", get_query_var('day'));
    
    	$post_id = $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE $where AND post_status = 'publish'");
    	if ( !$post_id )
    		return false;
    	return get_permalink($post_id);
    }
    
    add_action('template_redirect', 'redirect_canonical');
    
    ?>
  5. flick
    Member
    Posted 5 years ago #

    @the11throck: This reads a little more like a plugin issue rather than a redirection issue with standard WordPress (2.7) - Not sure if it might be more effective to post a new thread in the Plugins forum? :)

  6. 5buckguy
    Member
    Posted 5 years ago #

    I have this problem as well, and implemented the fix, which "sort of" worked. If I type in domainname/index.php it does display my blog, where WP 2.7 unmodified would display my index.html page.

    But ... in the WP dashboard, clicking on the view site will display the html page. Because ... domainname/index.php/ (with the trailing slash) isn't the same as index.php

    So more work to do unless someone has a fix to that. I looked at frisco's site that he mentioned, and he has the same situation also, index.php/ will go to his html page, so it isn't must my failure to install the change properly, I guess.

  7. vladeta
    Member
    Posted 5 years ago #

    Thanks!
    This fix worked for me also.
    I have WPMU with BuddyPress installed...

    Vladeta

  8. bizethics
    Member
    Posted 5 years ago #

    This problem still exists with 2.7.1. After updating, I had to manually edit canonical.php again, back to the fix posted by ChrisThomson.

    I had forgotten about this problem and the solution, and I don't want to tell you how long it took before I remembered that someone had posted a workaround...

  9. InterTrade
    Member
    Posted 5 years ago #

    ChrisThomson, you are a genius! Your solution worked for me too!

    Thanks a million!

  10. InterTrade
    Member
    Posted 5 years ago #

    Hey, I just noticed something though, and I was wondering if anyone else has experienced the problem with ChrisThomson's solution: on the initial visit to the website, the index.html page is displayed which has a link to the index.php page. When I click on the link, it goes to the index.php just fine, but when I click on any link on the index.php page it goes back to the index.html page. For anyone interested in seeing it, it's located on omniunlimited.com. You'll be able to see what I mean until I find a fix for this.

  11. livelearncreate
    Member
    Posted 5 years ago #

    Brilliant! Well done. To bad we can have this as a Settings option to turn it on and off.

  12. thedvl
    Member
    Posted 5 years ago #

    InterTrade I have the same problem .... when clicking on a link within index.php it will take you to the root which is index.html page. Did you find a fix?

  13. InterTrade
    Member
    Posted 5 years ago #

    Sorry thedvl, the only real solution I found (that is the one that actually took care of the problems instead of creating new ones) was to separate my WordPress files into a subdirectory with the index.html in the root directory. There were just too many factors for me to deal with in my website all of which seemed to have problems in distinguishing between the two files.

  14. 3DGuy
    Member
    Posted 4 years ago #

    I have the solution!!

    In your root directory, KEEP the index.php file.

    RENAME your index.html (splash page) to default.html and upload to the root directory.

    I believe your WordPress Theme will change the font style in your html file so you may need to go back in and re-code some HTML but IT WORKS!

  15. Masselyn
    Member
    Posted 4 years ago #

    THANK YOU 3DGuy. You solved my problem, because I went through this post and made the changes (which 2.7 and newer versions messed up) but going to my domain was still taking me directly to the index.php file and not my index.html file. I was frustrated, but good thing I read to the end because renaming it to default.html immediately solved everything. Thank you again for posting that solution!

    I work in web design, and this is going to be wonderful for my clients who want to tie WordPress to their HTML websites with a seamless look.

Topic Closed

This topic has been closed to new replies.

About this Topic