2012-04-30 8 views
1

Вот файл .htaccess.htaccess не позволяя подкаталог работать

RewriteEngine on 
RewriteCond $1 !^(index\.html|index.php|administrator|system|template|js|lib|favicon\.ico|robots\.txt) 
RewriteRule ^(.*)$ /index.html?tpl=$1 [L] 


Options +FollowSymlinks 

Однако то, что происходит в том, что все следующие папки не позволит мне войти в них и просматривать PHP файл.

|administrator|system|template|js|lib 

Я думал, помещая файлы в RewriteCond, что позволит пользователю по-прежнему идти http://example.com/news/happy, которые затем пойдут на index.php? TPL = и т.д. и т.д., но он остановил меня вдаваясь в подкаталоге как

http://example.com/system/index.php

+0

ли вы проверить, если на других подкаталогах у вас есть другие файлы .htaccess с другими правилами? – lu1s

+0

Нет других подкаталогов .htaccess – RussellHarrower

ответ

1

Я не знаю, если это будет работать для вас. Но я должен добавить эти правила для загрузки вызовов в любой .php-файл без окончания .php. Вы можете позвонить оба с этим завершением или без такового.

Например, вы можете позвонить по телефону my_url.com/myfolder/myfile и загрузить myfile.php с дружественным адресом.

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 
+0

Я помещаю это в подкаталог – RussellHarrower

+0

Nop. В корневом каталоге он должен работать хорошо. ,Файлы htaccess работают рекурсивно, если нет другого файла, который бы заменил эти правила. – lu1s

+0

Я действительно хотел, чтобы это сработало, но, к сожалению, это не – RussellHarrower

0

я хотел бы рекомендовать вам прочитать о модах переписывания первого

1 - поместить эту строку в верхнем

Options +FollowSymlinks 

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

Источник:

http://httpd.apache.org/docs/2.2/mod/core.html#options#FollowSymLinks

RewriteEngine on 

Включает или отключает во время выполнения перезаписи Энгин

Источник: http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewriteengine

RewriteCond $1 !^(index\.html|index.php|administrator|system|template|js|lib|favicon\.ico|robots\.txt) 

Здесь вы идете. это правило просить веб-сервер, чтобы добавить перепишем условие, чтобы игнорировать все перечисленное в своем регулярном выражении

также я добавил регулярное выражение объяснить для вас

! 
не

равной ^ Начинайте с

RewriteRule ^(.*)$ /index.html?tpl=$1 [L] 

вы просите написать все остальное в index.html? tpl = $ 1 ** Я думаю, что вы имеете в виду index.php, я предполагаю, что вам не нужна строка запроса

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

RewriteEngine On 
Options +FollowSymLinks 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !(index\.html|index.php|administrator|system|template|js|lib|favicon\.ico|robots\.txt) 
RewriteRule ^(.*)$ /index.html?tpl=$1 [L] 
Смежные вопросы