0

我正在尝试进行以下重写但没有成功。

无论输入什么 URL 或子域,都应始终由index.php.

可以说我去example.domain.com

URL 将保持不变,但内容来自 index.php

URL 或子域是否实际存在并不重要。

任何示例都相同:

other.domain.com/something

应该对用户保持不变,但index.php应该显示什么。

4

2 回答 2

1

您可以在主域 ( ) 根目录的一个 .htaccess 文件中尝试此操作site.com

Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI}  !index\.php    [NC]
RewriteRule .*              /index.php?    [L]

# If the above rule doesn't work as expected, use this rule instead:
# RewriteRule .*  http://site.com/index.php? [L]    

这应该适用于 public_html 文件夹中托管的通配符和插件子域。

规则集满足问题中的所有要求:

  • "No matter what URL is entered or the sub-domain" 将所有内容重定向到http://site.com/index.php

  • "it should always be processed by index.php". 因此index.php必须存在于某个地方,并且对于这个答案,在http://site.com.

  • "but index.php what is what should be showed". 相当混乱,但一个 OP 评论清楚地表明:将传入的 URL 保留在地址栏中。如果不是这种情况,请替换[L][R=301,L]

  • 不要将任何内容传递给替换 URL 中的脚本 (index.php),因为 OP 没有提及它。

于 2013-03-02T22:54:54.997 回答
0

您可以在 .htaccess 中使用以下行:

RewriteEngine on
RewriteRule ^([^/\.]+)/?$ index.php [L]
于 2013-03-02T20:07:17.587 回答