Мод Rewrite для перезаписи * .html файлов (CodeIgniter) - PullRequest
0 голосов
/ 28 июня 2010

Я уверен, что это, вероятно, действительно просто, но мои знания действительно не очень хороши в этой области, и я, кажется, не могу понять это правильно.

У меня следующая файловая структура:

/cms (renamed from system)
cms.php (renamed from index.php, added to DirectoryIndex in .htaccess)
.htaccess
index.html
page1.html
/css
/js

У меня также есть .htaccess из CI wiki.Часть, которую я думаю, нуждается в корректировке:

#Checks to see if the user is attempting to access a valid file,
#such as an image or css document, if this isn't true it sends the
#request to cms.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ cms.php?/$1 [L]

Я хочу, чтобы большинство файлов, которые уже существуют, были доступны, например, и .js, .css, .png, .swf и т. Д., Но любые .htm или .htmlбыть обработанным cms.php.

Например, если пользователь запрашивает http://localhost/index.html, index.html, он передается в cms.php, или если запрашивается http://localhost/dir/page.html, передается dir / page.html.

Ответы [ 2 ]

0 голосов
/ 28 июня 2010

Нашел учебник и придумал следующее:

RewriteRule ^(.*\.html)$ cms.php?/$1 [NC]

Итак, все запрошенное, заканчивающееся на .html, передается в cms.php, в результате чего получается URL-адрес, такой как cms.php / index.htmlкоторый cms.php может обрабатывать и выводить.

0 голосов
/ 28 июня 2010
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond $1 !^(*\.js|*\.png|*\.css|*\.swf|folder1|folder2)
RewriteRule ^(.*)$ index.php/$1 
RewriteRule ^.\.htm cms\.php
RewriteRule ^.\.html cms\.php
</IfModule>

Вы можете добавить другие расширения и / или папки, которые вы не хотите перенаправлять в строку RewriteCond.

...