【问题标题】:.htaccess hide .php for multiple domains on shared hosting.htaccess 为共享主机上的多个域隐藏 .php
【发布时间】: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 错误。

标签: php apache .htaccess


【解决方案1】:

试试这个:

RewriteEngine On

RewriteCond %{THE_REQUEST} ^\w+\ /(.*)\.php(\?.*)?\ HTTP/
RewriteRule ^ http://%{HTTP_HOST}/%1 [R=301]

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule .* $0.php

【讨论】:

  • 当我尝试导航到其他域中的文件时,会出现以下错误。在此服务器上未找到请求的 URL /otherdomain/otherdomain/office-supplies.php。此外,在尝试使用 ErrorDocument 处理请求时遇到 404 Not Found 错误。
猜你喜欢
  • 2013-12-31
  • 2011-12-05
  • 2013-02-12
  • 1970-01-01
  • 2011-08-13
  • 1970-01-01
  • 2018-11-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多