在我的服务器上,我有多个域。
RewriteEngine On
RewriteBase /
# 1. Redirect multiple domains to http://domain.de/
RewriteCond %{HTTP_HOST} !^(www\.)?domain\.de [NC]
RewriteRule ^/?(.*) http://domain.de/$1 [L,R,NE]
# 2. Redirect all requests to /subdirectory
RewriteRule ^$ /subdirectory [L]
2. 规则工作正常,但它没有隐藏 url 中的子目录,也没有按预期工作:请求http://domain.de/content/image.png
返回 404,因为实际文件位于http://domain.de/subdirectory/content/image.png
此外,我有一些带有工具的文件夹位于子目录旁边/subdirectory
。我想确保我仍然可以访问它们。这目前正在工作。
问题
我如何确保请求http://domain.de/content/image.png
有效?
我试过的
RewriteCond %{REQUEST_URI} !^/subdirectory/
RewriteRule (.*) /subdirectory/$1 [L]
但这只会在 apache 错误日志中返回错误 500,并带有以下条目:`由于可能的配置错误,请求超出了 10 个内部重定向的限制。
编辑
在 Ravi Thapliyal 提供指导之后,(我猜)还剩下一件事:从 url 中删除子目录。
[user@domain html]$ curl -I domain.de/
HTTP/1.1 301 Moved Permanently
Date: Mon, 21 Oct 2013 12:42:22 GMT
Server: Apache/2.2.22 (Ubuntu)
Location: http://domain.de/subdirectory/index.php
Vary: Accept-Encoding
Content-Type: text/html
这是返回的内容,但我实际上想要获取 html 而不是位置标头,然后它当然会将我从外部重定向到子目录,然后用户可以看到该子目录。它可能与子目录中的另一个 .htaccess 文件有关吗?
编辑2
似乎问题与subdirectory
. 接受的答案按预期工作。