2012-04-03 2 views
0

Я надеюсь, что кто-то сможет помочь с проблемой, которую я испытываю из-за моего отсутствия опыта и знаний с помощью htaccess.запрос htaccess. 2 переписывает правила для 2 домашних страниц

Что мы делаем, это программное обеспечение форума IP-плат и wordpress как в корневом каталоге. IPB имеет файл index.php (из-за индексации URL-адреса), а новый файл index.php Wordpress был переименован в blog.php.

В самой верхней части файла htaccess мы добавили: DirectoryIndex blog.php index.php - так что новый wordpress открывается первым.

Проблема, с которой я столкнулась, состоит в том, чтобы иметь 2 перезаписывающих файла в файле htaccess для дружественных URL-адресов из программного обеспечения форума, а также постоянные ссылки для нового wordpress.

У меня может быть только один или другой.

Пожалуйста, может кто-нибудь сказать мне, или указать мне в правильном направлении, чтобы оба работали.

Это то, что я делаю до сих пор, но, к сожалению, не радость, но прекрасно работает, если мы удалим одно из условий и переписываем.

<IfModule mod_rewrite.c> 
Options -MultiViews 
RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /blog.php [L] 
</IfModule> 

Большое спасибо заранее.

ответ

0

Не уверен, что вы все еще хотите получить ответ. В любом случае, если вы пытаетесь перейти на две разные страницы, вам нужно каким-то образом их отличить.

DirectoryIndex в основном сообщает файл (и порядок) по умолчанию при вводе каталога. Таким образом, http://host.com/ с обоими blog.php и index.php в каталоге будет обслуживать blog.php, потому что он первый в списке, который вы дали серверу. Если есть только index.php, он будет служить этому. Если ни один из них (и у вас нет ничего другого в списке), он выдает 404, потому что не найден файл по умолчанию.

EDIT: он попытается перечислить содержимое, если не найдено. Виноват. Если вы не разрешаете каталоги, то, вероятно, будет отображаться код ошибки. Чтобы отключить каталог листинга посмотреть в настройках: http://httpd.apache.org/docs/current/mod/core.html#options

http://httpd.apache.org/docs/current/mod/mod_dir.html

Ваши правила перезаписи, кажется, вроде хотят сделать то же самое в другом порядке. Если вы запрашиваете http://host.com/a, а a не является файлом или каталогом (в соответствии с условиями), он перейдет к index.php .. если index.php не существует, он будет зацикливаться до тех пор, пока сервер не поймает его, потому что вы этого не проверяете. Таким образом, это означает, что второй набор условий ничего не делает, потому что либо index.php существует, либо нет, а следующий набор, вероятно, не будет достигнут, если только это не произойдет.

Вы должны решить, как дифференцировать два (/blog/ для blog.php и / для index.php или что-то) и сделать одну из них по умолчанию. Если вы хотите рандомизировать его, я бы предложил сделать это через PHP.

http://httpd.apache.org/docs/current/mod/mod_rewrite.html

..для перенаправления с root на/forums/через htaccess попробуйте это:

RewriteEngine on 
RewriteCond %{REQUEST_URI} !^/forums/ 
RewriteRule ^(.*)$ /forums/$1 [L] 
+0

Огромное спасибо за ваш ответ и помощь. Я читал ссылки снова и снова, но не могу получить постоянные ссылки на mod_rewrites для форума. Теперь мы переместили форум в имена папок/форумы /, чтобы решить проблему, но знаете ли вы, как мы можем удалить/форумы/из URL-адреса? – user1310004

+0

@ user1310004 Я обновил ответ внизу, чтобы показать перенаправление на форумы, но это не является частью исходного вопроса. Вы поняли, что наличие двух файлов по умолчанию запутывает? Какой из них должен загружаться и как сервер должен сказать разницу? Для какого-либо другого условия должно быть значение по умолчанию для корня, а другое. Это в основном то, что я пытался преодолеть. – craniumonempty

+0

Привет. Еще раз спасибо за ваше время. Да, я понял то, что вы делали, но я не мог найти способ сообщить серверу, который был для rewriterule (index.php) форума, и который был для wordpress permalinks (blog.php). Так что посмотрел на другой вариант. В идеале мы хотим использовать опору с обоими в корне из-за причин SEO. Не могли бы вы представить, как мы будем рассказывать сервер, который есть? Извиняюсь за все вопросы и отсутствие знаний об этом. Очень ценю вашу помощь и время. – user1310004

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