使用mod_rewrite更改站点URL

时间:2009-07-27 23:37:56

标签: mod-rewrite

我发现很多关于创建漂亮的URI以及使用mod_rewrite的东西,但我正在寻找的是一种删除URL元素的方法(就查看者而言)而不仅仅是移动东西和/或重组。

我需要这个:

http://www.mysite.com/foo/bar

是这样的:

http://www.mysite.com/bar

基本上,让我们在URL中删除/ foo。

这可能吗?

2 个答案:

答案 0 :(得分:1)

您可以通过简单地删除您想丢失的内容轻松实现这一目标:

RewriteEngine On
RewriteRule ^foo/(.*)$  $1  [R=301,NE,L]

这应该有效地从您的网址中删除foo/。如果您不希望地址栏反映此更改,请删除R=301NE参数用于确保请求不会被转义。

答案 1 :(得分:0)

注意:这些说明大多来自here, "Giving Wordpress its Own Directory"

如果是专门的Wordpress,可以通过将一个看起来像这样的index.php添加到你想成为基础的目录来处理:

<?php
/**
 * Front to the WordPress application. This file doesn't do anything, but loads
 * wp-blog-header.php which does and tells WordPress to load the theme.
 *
 * @package WordPress
 */

/**
 * Tells WordPress to load the WordPress theme and output it.
 *
 * @var bool
 */
define('WP_USE_THEMES', true);

/** Loads the WordPress Environment and Template */
require('./blog2/wp-blog-header.php');
?>

在Wordpress设置中,您需要让它知道“实际”Wordpress URL与您希望其他人使用的URL之间的区别:

(这些在我的“设置”下......)

另外,我不记得是否自动完成(我认为是这样),但你放入index.php文件的.htaccess将需要如下所示:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress