2012-04-26 4 views
0

У меня есть следующий код HTAccess:mod_rewrite, но не в подкаталогах

Options +FollowSymLinks 
RewriteEngine On 
RewriteBase /

#RewriteCond %{REQUEST_URI} !(/cms/|/js/|/mobile/)* [NC] 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ /page.php [L] 

Как он стоит, он работает, как мне это нужно, чтобы в корне сайта, но доступ к странице администратора (/cms/), Я могу сказать через PhpConsole, что он все еще поражает page.php. Я думаю, это связано с тем, что администратор контролируется строкой запроса: URI выглядят как /cms/?view=pages&action=edit&id=4

Если я разорву первое условие, эта проблема больше не возникает, но мой внешний интерфейс возвращается с 404 на файлы, которые не существуют, а не перенаправляются на страницу.php

Что не так с моим кодом?

ответ

1

Изменить код с этим:

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteRule (?!^(cms|js|mobile)(/.*|)$)^.*$ page.php [L,NC] 
+0

Это работает отлично, за исключением page.php до сих пор попал в каталог СЦИ ... – AVProgrammer

+0

Вы имеете в виду URI в '/ CMS/style.css' все еще собирается 'page.php'? – anubhava

+0

На самом деле нет, это прекрасно работает. Когда я перехожу к/cms /? View = pages, он все равно нажимает page.php. Я помещаю код на page.php, чтобы умереть(), если он обнаруживает/cms /, но мне бы этого не хотелось. – AVProgrammer

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