我想设置一个子文件夹的根文件夹,拿什么通过追加他们的根之前的目录重写每个请求的URL,像如何在.htaccess中设置一个子目录作为根目录?
example.com/cat/ -> example.com/public/cat/
example.com/cat/black/ -> example.com/public/cat/black/
example.com/public/cat/ -> example.com/public/public/cat/
我已经试过
Options +FollowSymlinks
RewriteEngine on
RewriteBase/
RewriteRule (.*) /public/$1 [L]
但是,当我要求的任何它的页面,我得到了内部服务器错误。
这很奇怪。我认为,如果我不重定向,它只是从重写的路径发送文件,而不是重新启动整个事情。检查重定向状态有点怪异,所以我会和第二个一起去。没有标志或什么东西只是重写响应的路径?或者,也许在没有破坏结构语义的情况下使用PHP的帮助? – Tomato
您可以看到Apache的[规则集处理](https://httpd.apache.org/docs/current/rewrite/tech.html#InternalRuleset)的图像,它显示了在“URI已更改”时,循环再次开始。 'RewriteRule'是重写请求的指令。您也可以使用PHP,并通过查看['__ SERVER ['REQUEST_URI'']](http://php.net/manual/en/reserved.variables.server.php)并提供适当的内容来执行相同的操作。 –
我还没有试过['END'](https://httpd.apache.org/docs/current/rewrite/flags.html#flag_end)标志,但也许这适用于您的目的。 –