.htaccess htaccess-重定向以忽略嵌套的子目录,如果可能,使整个站点成为非www

.htaccess htaccess-重定向以忽略嵌套的子目录,如果可能,使整个站点成为非www,.htaccess,redirect,root,subdirectory,.htaccess,Redirect,Root,Subdirectory,我有一个问题太复杂了,我无法处理,但我敢打赌以前一定有人这样做过,所以请让我听听你的意见 情况如下: 我有1个主域,其中3个子目录相互嵌套 (自上而下) http://main-domain.com 然后 http://main-domain.com/company-name/ 然后 http://main-domain.com/company-name/blog/ 目前有3个.htaccess文件——上面显示的3个目录中各有1个 有什么问题吗? 我想要的不是www.main-domain.co

我有一个问题太复杂了,我无法处理,但我敢打赌以前一定有人这样做过,所以请让我听听你的意见

情况如下:

我有1个主域,其中3个子目录相互嵌套

(自上而下)
http://main-domain.com
然后
http://main-domain.com/company-name/
然后
http://main-domain.com/company-name/blog/

目前有3个.htaccess文件——上面显示的3个目录中各有1个

有什么问题吗?

我想要的不是www.main-domain.com/company-name/blog/where,而是main-domain.com/blog/where

所以,我想删除www,更重要的是,删除中间的子目录;i、 e./公司名称/

我希望下面的例子有助于说明这一点

http://main-domain.com/company-name/index.php
应更改为
http://main-domain.com/index.php

http://main-domain.com/company-name/blog/my-first-article/
应更改为
http://main-domain.com/blog/my-first-article/

我为什么需要这个?

我需要一个更简短的网址,这是搜索引擎优化友好。我有太多使用“旧”URL的反向链接,所以我需要修改重写它们

以下是我当前的3个htaccess文件

根htaccess:main domain.com

#Bypass InoCore Templating System

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteBase /reservations/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /reservations/default.php [L]

Options -Indexes

</IfModule>

#END Bypass

#301 REDIRECT

Options +FollowSymlinks

RewriteEngine on

RewriteRule ^info.php - [L]

RewriteCond %{HTTP_HOST} ^www.domain1.com [NC]
RewriteRule ^(.*)$ http://www.main-domain.com/company-name/$1 [R=301,NC]

RewriteCond %{HTTP_HOST} ^domain1.com [NC]
RewriteRule ^(.*)$ http://www.main-domain.com/company-name/$1 [R=301,NC]

RewriteCond %{HTTP_HOST} ^www.domain2.com [NC]
RewriteRule ^(.*)$ http://www.main-domain.com/company-name/$1 [R=301,NC]

RewriteCond %{HTTP_HOST} ^domain2.com [NC]
RewriteRule ^(.*)$ http://www.main-domain.com/company-name/$1 [R=301,NC]

RewriteCond %{HTTP_HOST} ^www.domain3.com [NC]
RewriteRule ^(.*)$ http://www.main-domain.com/company-name/$1 [R=301,NC]

RewriteCond %{HTTP_HOST} ^domain3.com [NC]
RewriteRule ^(.*)$ http://www.main-domain.com/company-name/$1 [R=301,NC]

RewriteCond %{HTTP_HOST} ^main-domain.com [NC]
RewriteRule ^(.*)$ http://www.main-domain.com/company-name/$1 [R=301,NC]

RewriteCond %{HTTP_HOST} ^www.main-domain.com [NC]
RewriteRule ^(.*)$ http://www.main-domain.com/company-name/$1 [R=301,NC]
#绕过InoCore模板系统
重新启动发动机
重新编写库/预订/
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/reservations/default.php[L]
选项-索引
#末端旁路
#301重定向
选项+FollowSymlinks
重新启动发动机
重写规则^info.php-[L]
重写cond%{HTTP_HOST}^www.domain1.com[NC]
重写规则^(.*)$http://www.main-domain.com/company-name/$1[R=301,北卡罗来纳州]
重写cond%{HTTP_HOST}^domain1.com[NC]
重写规则^(.*)$http://www.main-domain.com/company-name/$1[R=301,北卡罗来纳州]
重写cond%{HTTP_HOST}^www.domain2.com[NC]
重写规则^(.*)$http://www.main-domain.com/company-name/$1[R=301,北卡罗来纳州]
重写cond%{HTTP_HOST}^domain2.com[NC]
重写规则^(.*)$http://www.main-domain.com/company-name/$1[R=301,北卡罗来纳州]
重写cond%{HTTP_HOST}^www.domain3.com[NC]
重写规则^(.*)$http://www.main-domain.com/company-name/$1[R=301,北卡罗来纳州]
重写cond%{HTTP_HOST}^domain3.com[NC]
重写规则^(.*)$http://www.main-domain.com/company-name/$1[R=301,北卡罗来纳州]
重写cond%{HTTP_HOST}^main-domain.com[NC]
重写规则^(.*)$http://www.main-domain.com/company-name/$1[R=301,北卡罗来纳州]
重写cond%{HTTP_HOST}^www.main-domain.com[NC]
重写规则^(.*)$http://www.main-domain.com/company-name/$1[R=301,北卡罗来纳州]
公司名称htaccess:main domain.com/company name/

RewriteEngine on

RewriteRule ^maping.php /maping.php

RewriteRule ^$ index.php?$1 [L]

RewriteRule (.*) index.php?$1 [L]

#php_flag magic_quotes_gpc off

#BEGIN WordPress

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteBase /company-name/

RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /company-name/index.php [L]

</IfModule>

#END WordPress
RewriteEngine off

#BEGIN WordPress

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteBase /company-name/blog/

RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /company-name/blog/index.php [L]

</IfModule>

#END WordPress
重新编写引擎打开
重写规则^maping.php/maping.php
重写规则^$index.php?$1[L]
重写规则(.*)index.php?$1[L]
#php_标志魔术_引号_gpc关闭
#开始WordPress
重新启动发动机
重写基地/公司名称/
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/公司名称/index.php[L]
#结束WordPress
博客访问:main domain.com/company name/blog/

RewriteEngine on

RewriteRule ^maping.php /maping.php

RewriteRule ^$ index.php?$1 [L]

RewriteRule (.*) index.php?$1 [L]

#php_flag magic_quotes_gpc off

#BEGIN WordPress

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteBase /company-name/

RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /company-name/index.php [L]

</IfModule>

#END WordPress
RewriteEngine off

#BEGIN WordPress

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteBase /company-name/blog/

RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /company-name/blog/index.php [L]

</IfModule>

#END WordPress
发动机关闭
#开始WordPress
重新启动发动机
重写库/公司名称/博客/
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/公司名称/blog/index.php[L]
#结束WordPress

正确且紧凑的根目录。htaccess应如下所示:
  • R=301将以https状态301重定向
  • 我会制定最后的规则
  • NE表示无转义查询字符串
  • NC用于忽略大小写比较
  • $1是您的请求\u URI匹配组

嗨&谢谢你留下我的东西让我试试!在我尝试它之前,我有一个问题,那就是当根目录(和其他地方)中的文件夹多于一组嵌套文件夹时,代码如何知道只重定向到/blog/文件夹?对不起,必须打断注释--太长了。:)也许我看错了,更可能的是我没有充分解释情况,根据我所知的一点,看起来^[\/]+/(.*)$将告诉它将任何目录请求(至少有1个字符)跳转到根目录——如果我只有,就像我说的,只有1组嵌套目录,这可能是一个很好的解决方案,但是有/images/,/reservation/,等等。这些不也会被修复吗?谢谢将我的答案更改为只重定向
*/blog/*
类型的URL,从而保持像/images/、/reservations/等其他URL不变。我还对你的问题进行了编辑,使其更具可读性。你需要使用代码标签(
{}
按钮)来显示上面的代码;只是它没有按照我放进去的方式工作所以说得很清楚,我输入{},它会正确格式化吗?没有,但我在下面的“评论”部分找到了。在我这方面,它说要使用`符号,而不是{,但无论如何,我让它工作了。:)我想我做得不对。“你需要使用代码标签({}按钮)来显示你的代码”--那是哪一个?让我们试试
http://domain1.com