我正在尝试进行以下重写但没有成功。
无论输入什么 URL 或子域,都应始终由index.php
.
可以说我去example.domain.com
URL 将保持不变,但内容来自 index.php
URL 或子域是否实际存在并不重要。
任何示例都相同:
other.domain.com/something
应该对用户保持不变,但index.php
应该显示什么。
您可以在主域 ( ) 根目录的一个 .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 没有提及它。
您可以在 .htaccess 中使用以下行:
RewriteEngine on
RewriteRule ^([^/\.]+)/?$ index.php [L]