2016-01-09 5 views
0

В принципе у меня есть настройки каталогов вроде этого:.htaccess | открыть файл не каталог

/.htaccess 
/home.php 
/office.php 
/office/tutorials.php 

и файл .htaccess, как это:

<Files ~ "^\.(htaccess|htpasswd)$"> 
deny from all 
</Files> 
order deny,allow 

# setup 
DirectoryIndex /home.php 
ErrorDocument 403 /err403.php 
ErrorDocument 404 /err404.php 

# remove trailing slash 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} (.+)/$ 
RewriteRule^%1 [R=301,L] 

# To internally forward /dir/file to /dir/file.php 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{DOCUMENT_ROOT}/$1.php -f [NC] 
RewriteRule ^(.+?)/?$ /$1.php [L] 

Сейчас происходит следующее. Когда я называю «www.domain.com/home», он работает отлично. Но когда я пытаюсь позвонить «www.domain.com/office», я всегда получаю домашнюю страницу home.php без стилизации, и это показывает, что я нахожусь на «www.domain.com/office/», поэтому, я думаю, в каталог с именем office.

Я попытался переименовать офис/каталог, затем файл office.php работает отлично, но мне нужен каталог, который будет называться так же, как и файл, поэтому URI выглядит красивым и чистым и накапливается друг на друга, как это:

www.domain.com/office (own page) 
www.domain.com/office/tutorials (own page) 

благодарит заранее!

ответ

0

Ваша третья к последней строка гласит:

RewriteCond %{REQUEST_FILENAME} !-d 

Вы просили Apache не карта www.domain.com/office к office.php, потому что есть прямо называется office. Если это не ваше желание, удалите эту строку.

+0

большой! это решает большую часть проблемы, но теперь она добавляет косую черту в конце URI, когда существует каталог с таким же именем ... –

+0

Если вы хотите, чтобы ваше правило «удалить конечную косую черту» применимо к каталогам, тогда удалите тот же RewriteCond из этого правила. –

+0

Я пробовал это, но потом я получаю ошибку перенаправления ... –

Смежные вопросы