0

我已经坚持了好几天了。我想我在某个地方做错了,但我无法让它为我的生活工作。

我正在使用codeigniter,我试图让我的正常页面被重写,如:

website.com/folder/page.html using RewriteRule ^(.*)$ index.php/$1 [L]

哪个有效,但我试图让它不重写website.com/folder/admin/ folder.

但是当我使用我的追随者时,我让它工作但随后它应用它所以

website.com/folder/page

website.com/folder/page.html

我不想要我只想要.html

<IfModule mod_rewrite.c>

RewriteEngine On
Options +FollowSymlinks
RewriteBase /folder/

# Don't rewrite admin urls
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^admin/
RewriteRule ^(.*)$ index.php/$1 [L,NC]

#Adds .html to urls without it
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^admin/
RewriteCond %{REQUEST_URI} !\.html
RewriteRule ^(.+)$ $1\.html [L]

#RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L] 

</IfModule>
4

1 回答 1

1

您要匹配的%{REQUEST_URI}变量不遵守基数 ( /folder/),因此您必须在您的条件下匹配它。所以而不是:

RewriteCond %{REQUEST_URI} !^admin/

你需要类似的东西(注意前导斜杠):

RewriteCond %{REQUEST_URI} !^/folder/admin/

或者只是放弃^

RewriteCond %{REQUEST_URI} !/admin/
于 2012-12-23T09:01:25.047 回答