Я сделал .htaccess
в моем корневом каталоге для создания уровня поддоменов, предположим, что sub.domain.ex
перенаправляет на domain.ex/deb/
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} sub.domain.ex
RewriteCond %{REQUEST_URI} !deb/
RewriteRule ^(.*)$ /deb/$1 [L]
и это хорошо работает.
Теперь я перехожу к /deb/
и создаю еще один .htaccess
со следующим
RewriteEngine on
RewriteRule ^([^/]+)/ /deb.php?app=$1 [NC]
deb.php - это файл, который печатает аргумент "app".
Это работает, но только если я позвоню http://sub.domain.ex/something/
(обратите внимание на косую черту в конце). Он работает только с последней косой чертой, если я удаляю ее, это не так, и я хочу, чтобы она работала без последней косой черты.
Итак, я изменил правило на ^([^/]+)
, но теперь у меня есть внутренняя ошибка 500 Apache.
Тренеры с регулярными выражениями на моей стороне с выбором, может быть, я что-то упустил.
Спасибо
UPDATE
Я схожу с ума. Возможно, неправильно помещать один .htaccess в корень для создания se 3-го подуровня doman и .htacces в другом каталоге? Потому что я пытаюсь уловить.
Я использую это правило
RewriteEngine on
RewriteRule ^([^/]+)/ deb.php?app=$1 [NC]
в .htacces каталога /deb
и сделал print_r($_GET);
и вызвал index.php. Таким образом, редирект вообще не работает, если он перенаправляет меня на index.php подуровня cydia и не принимает /deb/deb.php !!!
Резюме.
моя структура каталогов такая:
/htdocs/ -> the root of the main domain level like www.example.com
---index.php -> home file of www.example.com
/htdocs/deb -> the root directory of the 3th sublevel domain (subdomain.example.com ->
---index.php
---deb.php
Таким образом, .htaccess для домена 3-го уровня находится в /htdocs./htaccess и описан, как и раньше.
Другой .htaccess для «украсить» ссылку находится в /htdocs/deb/.htaccess. Я хочу, чтобы при переходе на subdomain.domain.com/someText он преобразовывался в deb.php? App = someText
Теперь я попытался перейти на subdomain.domain.com/deb.php....WTF !? deb.php находится в /htdocs/deb/deb.php
Дом ясен