Php 使用.htaccess更改目录结构
我想将我所有的网站文件(甚至包括index.php)移动到一个子目录中(例如exp:“abc”) 比如说 之前: 之后:Php 使用.htaccess更改目录结构,php,apache,.htaccess,Php,Apache,.htaccess,我想将我所有的网站文件(甚至包括index.php)移动到一个子目录中(例如exp:“abc”) 比如说 之前: 之后: public_html abc_directory index.php a.file directory an.other.file ... 我希望一切正常,就像以前一样,但我不想做任何重定向(可见) 用户应输入“”并通过.htaccess apache为其提供服务“”,但无需外部重定向(301302等) 如何使用mod_rewrite将
public_html
abc_directory
index.php
a.file
directory
an.other.file
...
我希望一切正常,就像以前一样,但我不想做任何重定向(可见)
用户应输入“”并通过.htaccess apache为其提供服务“”,但无需外部重定向(301302等)
如何使用mod_rewrite将所有请求路由到子目录
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)$ directory/$1 [L,QSA]
在文档根目录中尝试此mod_重写规则:
RewriteEngine on
RewriteRule !^directory/ directory%{REQUEST_URI} [L]
或一般而言:
RewriteEngine on
RewriteCond $1 !^directory/
RewriteRule ^/?(.*) directory/$1 [L]
这甚至适用于服务器或虚拟主机配置。我试过了。(实际上我想将所有内容重定向到ubenzer文件夹。)我已经编写了RewriteRule^(.*)$ubenzer/$1,但出现了500个内部服务器错误。您是否在和上调用了RewriteEngine?是的。我也不知道,但它恢复到500美元。但是,顶层的解决方案奏效了。无论如何,谢谢。:)为了解释这种行为:您有一个无限递归循环,因为
目录/…
也与^(.*)$
匹配。它对我有效,但只有在所有其他重写之后将重写cond
和重写规则
放在文件底部之后。我只是想提一下。
RewriteEngine on
RewriteCond $1 !^directory/
RewriteRule ^/?(.*) directory/$1 [L]