Mod rewrite 使用mod_重写更改站点URL

Mod rewrite 使用mod_重写更改站点URL,mod-rewrite,Mod Rewrite,我发现了很多关于使用mod_rewrite创建漂亮的URI之类的东西,但我要寻找的是一种删除URL元素的方法(就查看者而言),而不仅仅是移动和/或重新组织内容 我需要这个: 为此: 基本上,让我们去掉URL中的/foo 可能吗 你可以通过简单地放弃你想要失去的东西来轻松实现: RewriteEngine On RewriteRule ^foo/(.*)$ $1 [R=301,NE,L] 这将有效地从您的URL中删除foo/。如果不希望地址栏反映此更改,请删除R=301。NE参数用于确保

我发现了很多关于使用mod_rewrite创建漂亮的URI之类的东西,但我要寻找的是一种删除URL元素的方法(就查看者而言),而不仅仅是移动和/或重新组织内容

我需要这个:

为此:

基本上,让我们去掉URL中的/foo


可能吗

你可以通过简单地放弃你想要失去的东西来轻松实现:

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

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

注意:这些指令大部分来自

如果是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');
?>

这背后的逻辑是什么?这只是一个控制器吗?只是为了清理URL,真的。这是一个Wordpress安装,它位于public_html的目录下。只是想把事情弄清楚。这不正是他想要的吗?他希望URL为example.com/bar,并参考位于/foo/bar的文件。此重写规则似乎将example.com/foo/bar转换为/bar处的文件。或者我只是对mod_rewrite了解得不够?如果他想将/bar称为/foo/bar,那么他需要为他想引用的每个/foo制定一个规则嗯。。。例如:RewriteRule(这些是我想要过滤掉的目录)/(.*)$$1[R=301,NE,L]@Andrew:这就是我现在得到的,修改了你的建议。还是不想工作。您可能会明白为什么我没有:RewriteBase/blog2/RewriteCond%{REQUEST_FILENAME}上的RewriteEngine-f RewriteCond%{REQUEST_FILENAME}-重写规则/blog2/index.php RewriteRule^blog2/(.*)$/$1[R=301,NE,L]删除你的
RewriteBase
语句。我想这更多的是关于WP的问题,而不是mod_rewrite。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress