2013-05-28 4 views
0

Это мой .htaccess:.htaccess перезаписи URL - исключения для определенных файлов только

Options +FollowSymlinks -MultiViews 
RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_URI} !index\.php [NC] 
RewriteCond %{REQUEST_FILENAME} !\.php$ [NC] 
RewriteRule ^([^/]+)/?$ index.php?page=$1 [QSA] 

В принципе, если вы вводите/тест, он будет работать отлично, и если вы идете в /test.php, это будет покажите страницу PHP без правила перезаписи, что мне нужно только для определенных страниц.

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

Итак, скажем, для «result.php» и «search.php», я хочу, чтобы он мог загружать всю страницу PHP, но для остальных я хочу, чтобы она перенаправлялась на правый адрес (так/contact.php =>/contact).

Как я мог это сделать? В основном мне нужно добавить этот RewriteRule (RewriteCond %{REQUEST_FILENAME} !\.php$ [NC]) только на несколько страниц (что я бы определил сам), а для остальных страниц мне нужен еще один RewriteCond (который перенаправляет все «test.php» на «test»)

Большое спасибо!

ответ

0

Вы можете поместить все эти исключения в первом RewriteCond и изменить 2nd RewriteCond, чтобы пропустить реальные файлы и реальные каталоги, как это:

RewriteCond %{REQUEST_URI} !/(index|result|search)\.php [NC] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]+)/?$ /index.php?page=$1 [QSA,L] 
Смежные вопросы