Мой веб-путь: http://git.example.com/
(например).htaccess переписать не работает в подкаталоге
Мой док корень:
/home/user/git/
Внутри корня док У меня есть две папки:
/home/user/git/john
/home/user/git/doe
Эти папки представляют собой git repos для john и doe соответственно. Они размещаются на веб-сервере, поэтому код может быть протестирован как созданный, прежде чем он будет передан мастеру.
Проблема, с которой я столкнулся, заключается в том, что код сайта в репо имеет файл .htaccess в стиле Wordpress, так что скрипт может обрабатывать все slug-страницы, указанные в базе данных для каждого продукта и т. Д. У меня есть следующий код в моем файле .htaccess внутри каталога /home/user/git/john
:
RewriteEngine On
RewriteBase /john/
# FORCE BROWSER TO URL AND DO NOT ATTEMPT TO SLUG MATCH THESE
RewriteCond %{REQUEST_URI} ^/john/checkout/(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^/john/admin/(.*)$ [OR]
RewriteRule ^.*$ - [L]
# ROUTE THROUGH CMS
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
Я также попытался изменить RewriteBase только /
и я попытался изменить последнюю строку на RewriteRule . /john/index.php
и все изменения в нем. Ничего я не работаю.
Что я имею в виду, если не работает? Хорошо, что у меня есть url http://git.example.com/john/some_product_name.html
- Я получаю ошибку 404, не найденную, и в журнале ошибок apache есть стандартный 404 нет такого файла для запроса. Больше ничего. Его вроде «нет дерьма, файла нет ... вы, наверное, переписываете это, когда его не нашли!»
В любом случае, этот точный скрипт работает безупречно, когда все работает из корневого каталога, как на реальном сайте, однако перемещение копии в подкаталог было проблемой. Я мог бы просто создать новый субдомен для каждого разработчика в проекте и запустить git из своего doc_root, но на самом деле ... должен быть способ сделать эту работу. Что мне не хватает?
Кроме того - я могу подтвердить, что перезапись не происходит вовсе, потому что в верхней части моего index.php
файла, у меня есть: echo "I'm here"; exit;
так вместо того, чтобы 404 не нашел, что я должен видеть пустую белую страницу с сообщением «I 'м здесь". Я не.
** UPDATE **
Я закомментирована силу через линии в верхней части, как это, и его теперь работает:
RewriteEngine On
RewriteBase /john/
# FORCE BROWSER TO URL AND DO NOT ATTEMPT TO SLUG MATCH THESE
#RewriteCond %{REQUEST_URI} ^/john/checkout/(.*)$ [OR]
#RewriteCond %{REQUEST_URI} ^/john/admin/(.*)$ [OR]
#RewriteRule ^.*$ - [L]
# ROUTE THROUGH CMS
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
Почему в мире бы эти строки быть причиной этой проблемы? URL-адрес, к которому я обращаюсь, определенно не соответствует ни одному из этих шаблонов!
Удалить последний [OR] для 1-го правила, чтобы работать, как ожидалось. –
* facepalm * Можете ли вы ответить на вопрос, чтобы я мог его принять? – SublymeRick