【问题标题】:htaccess mod rewrite folders hide [closed]htaccess mod重写文件夹隐藏[关闭]
【发布时间】:2013-04-02 06:33:32
【问题描述】:

我一直在为我的 htaccess 文件苦苦挣扎。我有以下 URL:

http://www.mysite.com/folder1/system/folder2/file.php

我设法隐藏了 .php 扩展名,但现在我试图隐藏 /system/。 我现在有以下内容: (Mod Rewrite Hide Folder)

RewriteEngine on 
RewriteRule ^/(.*)$   /system/$1

然而这行不通。

谢谢。

编辑:

通过测试所有解决方案都没有工作,我有一种强烈的感觉,我的 .htaccess 位于错误的目录中。目前.htaccess在folder1目录..不在根目录,不在系统,不在folder2..

【问题讨论】:

标签: apache .htaccess mod-rewrite directory


【解决方案1】:

试试这个htaccess代码

RewriteEngine on
RewriteBase /folder1
RewriteRule ^folder2/(.*).php$ system/folder2/$1.php [L]

【讨论】:

  • 我必须以这种方式为每个文件制定规则吗?
  • 现在检查我对所有文件的回答
  • @Sinan 是否有效?
  • 还是不行,我在folder1目录中有.htaccess文件。
  • 哦,这就是问题所在,现在检查我更新的代码它会工作
【解决方案2】:
RewriteEngine On
RewriteRule ^(.*)$ %{REQUEST_URI}/system/$1 [R,NC,L]

试试这个。

【讨论】:

  • 这条规则把url改成了一个很长的url。
  • 这是一个非常糟糕的解决方案
【解决方案3】:

记住您需要将.htaccess-文件放在folder1-目录中!我认为您可能已将其放置在您网站的根目录中。

另外,请注意不要使用前导 /。

试试这个:

RewriteEngine on
RewriteRule ^/(.*) system/$1

【讨论】:

  • 我的htaccess文件在folder1目录下,不在根目录下。
  • 编辑了我的答案。试一试
【解决方案4】:

用这个替换你的规则:

RewriteCond %{REQUEST_URI} !/system/ [NC]
RewriteRule ^([^/]+)/(.*)$ /$1/system/$2 [L]

【讨论】:

  • 在此服务器上找不到请求的 URL /system/system/information/information.php。
  • 已编辑,您现在可以试试。
【解决方案5】:

试试这个

RewriteEngine on

RewriteRule ^/([^/]+)/(.*)$   $1/system/$2 [QSA,L]

编辑:

RewriteCond %{REQUEST_URI} ^/folder1/system/(.*)$ 
RewriteRule ^ - [S=1,L]
RewriteCond %{REQUEST_URI} ^/folder1/(.*)$ 
RewriteRule ^ /folder1/system/%1 

【讨论】:

  • 这条规则不会让系统宕机,也不会删除/system/
猜你喜欢
  • 2011-02-06
  • 2015-04-06
  • 1970-01-01
  • 2015-09-12
  • 1970-01-01
  • 2013-08-02
  • 2014-06-30
  • 2012-11-20
  • 1970-01-01
相关资源
最近更新 更多