Я хотел бы переписать все индексные файлы, такие как /index
в моем поддомене, а также в моем домене. До этого момента не нужно было использовать субдомен. Теперь проблема заключается в правиле перезаписи из файла htaccess. Это переписывает URL-адрес, как в приведенном ниже коде:
RewriteRule ^index\.(htm|html|php) http://%{HTTP_HOST}/ [R=301,L] RewriteRule ^(.*)/index\.(htm|html|php) http://%{HTTP_HOST}/$1/ [R=301,L]
Означает, что в домене все индексные файлы будут переписаны. Это хорошо работает, но не в субдомене. Теперь я подумал, что могу просто добавить условие для моего поддомена:
RewriteCond %{HTTP_HOST} !^subdomain\.example\.com$ RewriteCond %{HTTP_HOST} !^www\.
но это, к счастью, не работает.
Чтобы дать дополнительную информацию, вот как выглядит URL-адрес:
http://www.example.com/index and the subdomain: http://subdomain.example.com/index
С кодом выше URL-адрес будет выглядеть следующим образом:
http://www.example.com/ and the subdomain: http://subdomain.example.com/index
Было бы здорово, если бы кто-нибудь мог мне помочь.
Большое спасибо.
ОБНОВИТЬ:
Чтобы дать дополнительную информацию, мне нужно объяснить, как все работает.
В корневом каталоге находится папка для субдомена.
--> /index.php --> /folderA --> /subdomain /root --> /folderB --> /index.php
URL-адрес выглядит так:
http://www.example.com/subdomain/folderA/index
а также
http://subdomain.example.com/folderA/index
Я использую чистый URL, так что это просто index
а не index.php
и т. Д. Настройки по умолчанию уже скрывают index.php при вызове страницы. Проблема будет в том, когда я буду менять языки, что означает folderA и folderB. Поэтому я читал базовое имя файла и использовал функцию заголовка для перенаправления в правый каталог. Основная проблема заключается в субдомене. В домене он работает хорошо. Просто, когда у меня есть индексная страница из папки с URL-адресом:
http://subdomain.example.com/folderA/(index will be hidden)
и зачитает basename (=> index) и будет заголовок для:
http://subdomain.example.com/folderB/(index will be hidden)
это будет вызвано проблемой. URL-адрес будет переписан неправильно. Или еще один простой пример:
Наличие кнопки логотипа на всех страницах в root/subdomain/folderA/
Эта кнопка является ссылкой только с: <a href="/index.php">...</a>
. URL-адрес страницы будет выглядеть следующим образом: subdomain.example.com/folderA/filexy
при нажатии этой ссылки URL-адрес будет переписан на www.example.com/subdomain/folderA/
У вас есть такие правила:
Options +FollowSymLinks -MultiViews # Turn mod_rewrite on RewriteEngine On RewriteBase / # do nothing if subdomain RewriteCond %{HTTP_HOST} !^subdomain\.example\.com$ [NC] RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule - [L] RewriteRule ^index\.(htm|html|php) http://%{HTTP_HOST}/ [R=301,L] RewriteRule ^(.*)/index\.(htm|html|php) http://%{HTTP_HOST}/$1/ [R=301,L]
PS: Хотя я предлагаю взглянуть на директиву DirectoryIndex, а затем вы можете заменить выше код на эту строку:
DirectoryIndex index.htm index.html index.php
Попробуй это:
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_HOST} !^subdomain\.example\.com$ [NC] RewriteRule ^/index\.(htm|html|php)$ http://%{HTTP_HOST}/$1 [NC,R=301,L] </IfModule>