У меня есть домен, назовем его newsite.com, который припаркован на maindomain.com.Я использую mod-rewrite для направления всех запросов на newsite.com в подкаталог на maindomain.com.На newsite.com у меня установлен CodeIgniter.Это означает, что URL выглядят так:
newsite.com / products / shoes /
Вышеуказанное работает просто отлично.
Однако, если янастроить контроллер для такой страницы:
newsite.com / about / или newsite.com / about / faqs /
Iполучить 404, который, по моему мнению, вызван, потому что он ищет страницу maindomain.com/about.php, которая существует, но НЕ существует на newsite.com.
Мой вопрос ... какмне ПРЕДОТВРАТИТЬ URL-адреса, такие как newsite.com/about/, указывать на newsite.com/about.php?Это противоположно тому, что многие люди пытаются сделать (они, как правило, хотят, чтобы расширение файла отсутствовало).
Мне интересно, если это и настройки Apache или PHP, которые заставляют его искатьсначала файл, если он существует, а каталог - нет?Или мне нужно добавить больше правил переписывания модов?
Большое спасибо!
Редактировать - вот мой файл .htaccess в настоящее время.Он находится в корневом каталоге учетной записи общего хостинга maindomain.com.
# Redirect various urls to subfolders of the format: /site-thename/
RewriteEngine On
# Remove the www for NewSite.
RewriteCond %{HTTP_HOST} ^www.newsite.com$ [NC]
RewriteRule ^(.*)$ http://newsite.com/$1 [R=301,L]
# Handle pages and directories that should not go through CodeIgniter.
RewriteCond %{HTTP_HOST} ^(www\.)?newsite\.com
RewriteCond %{REQUEST_URI} !^/site-newsite/
RewriteCond %{REQUEST_URI} ^/demo/ [OR]
RewriteCond %{REQUEST_URI} ^/robots\.txt [OR]
RewriteCond %{REQUEST_URI} ^/emailform\.php [OR]
RewriteCond %{REQUEST_URI} ^/assets/ [OR]
RewriteCond %{REQUEST_URI} ^/index\.php
Rewriterule ^(.*)$ /site-newsite/$1 [L]
# Handle CodeIgniter URLs.
RewriteCond %{HTTP_HOST} ^(www\.)?newsite\.com
RewriteCond %{REQUEST_URI} !^/site-newsite/
Rewriterule ^(.*)$ /site-newsite/index.php?/$1 [L]