【发布时间】:2018-10-18 04:27:06
【问题描述】:
我有一个托管服务,其中包含我的主域和其他几个域(不是子域 - 它们是它们自己的网站)。我希望能够将以下代码用于此主目录中的任何域。
目前文件夹结构是这样的:
主域——(主目录/主域网站文件)。我们称之为 www.maindomain.com
其他域——(主目录/其他域/其他域网站文件)。我们称之为 www.otherdomain.com
以下代码完全隐藏了 .php 文件扩展名。这样即使用户输入一个没有文件扩展名的链接,它仍然会转到指定的页面并且仍然不显示 .php
显然,此代码仅适用于主域。但是,我真的很想知道如何更改它,以便它也可以用于其他域。
我真的希望有人可以帮助我! :)
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.maindomain.com/$1 [R,L]
## hide .php extension
# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L,NC]
## To internally redirect /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_URI}.php [L]
【问题讨论】:
-
如果你在linux上,你能用符号链接把文件放在每个域的文档根目录下吗?然后,不要对域名进行硬编码,而是动态执行它,以便它适用于所有域:
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]。 -
当我导航到我的其他域松散文件(页面)之一时,这会提供以下错误。 -- 在此服务器上未找到请求的 URL /otherdomain/otherdomain/office-supplies.php。此外,在尝试使用 ErrorDocument 处理请求时遇到 404 Not Found 错误。