.htaccess 在htaccess中使用通配符子域函数时将不同的子域指向不同的文件

aelbi1ox  于 2023-06-24  发布在  其他
关注(0)|答案(1)|浏览(118)

使用通配符子域功能时,需要帮助将主域指向index.php,并将子域指向htaccess中自己的文件
例如:
test.com 到index.php
ru.test.com 转ru.php
de.test.com 到de.php
我当前的htaccess文件

RewriteEngine on
RewriteCond %{HTTPS} off
RewriteCond %{HTTPS_HOST} !^www.test.com$ [NC]
RewriteRule ^(.*)$ https://www.test.com/$1 [L,R=301]
RedirectMatch 301 ^/m/$ https://www.test.com/
RedirectMatch 301 ^/mobile/$ https://www.test.com/
RewriteRule ^([0-9]+) index.php?query=$1 [NC]
RewriteRule ^search\.html$  search.php [NC,L]
snz8szmq

snz8szmq1#

你可能想要这样的东西:

RewriteEngine on

RewriteCond %{HTTPS} off
RewriteCond %{HTTPS_HOST} !^www\.test\.com$ [NC]
RewriteRule ^ https://www.example.com%{REQUEST_URI} [L,R=301]

RewriteRule ^/m/(.*)$ https://www.example.com/$1 [L,R=301]
RewriteRule ^/mobile/(.*)$ https://www.example.com/$1 [L,R=301]

RewriteRule ^([a-z]{2})/(.*)$ $1.php?query=$2 [END]

RewriteRule ^search\.html$  search.php [NC,END]
RewriteRule ^(\d+)$ index.php?query=$1 [NC]

注意:我还修复了一些其他小问题...
一般规则的一种替代方法

RewriteRule ^([a-z]{2})/(.*)$ $1.php?query=$2 [END]

将是一个专门命名有效短代码的规则:

RewriteRule ^(en|es|fr|ge|ru)/(.*)$ $1.php?query=$2 [END]

相关问题