Я пробовал это: rewriteRule "^/(.*)$" "/ppyazi.com/$1"
В .htaccess
URL-путь, соответствующий шаблону RewriteRule
, не начинается с косой черты. Таким образом, шаблон ^/(.*)$
никогда не будет совпадать, а ваша директива ничего не сделает.
Однако, если в подкаталоге /ppyazi.com
с директивами mod_rewrite также есть файл .htaccess
, вам следует быть осторожным с перезаписью циклов.
Попробуйте вместо этого следующее:
RewriteEngine On
rewriteRule !^ppyazi\.com\ /ppyazi.com%{REQUEST_URI} [L]
Шаблон RewriteRule
просто проверяет, что URL еще не начинается с каталога, в который мы переписываем. Вместо обратной ссылки $1
(поскольку мы ничего не фиксируем в шаблоне RewriteRule
) мы используем вместо этого переменную сервера REQUEST_URI
. Обратите внимание, что REQUEST_URI
содержит полный URL-путь, включая префикс косой черты, поэтому слеш следует исключить из строки susbstitution .
Флаг L
(last
) необходим для предотвращения дальнейшей обработки директив, возникающих позднее в файле (в текущем цикле обработки). Если это последняя директива mod_rewrite в файле, то она является излишней. Однако обратите внимание, что в .htaccess
процесс переписывания по существу начинается с (пока URL не проходит без изменений), поэтому другие директивы могут по-прежнему обрабатывать запрос.