我已经坚持了好几天。我想我在某个地方做错了但我不能让它为我的生活工作。
我正在使用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>
答案 0 :(得分:1)
您要匹配的%{REQUEST_URI}
变量不会观察到基数(/folder/
),因此您必须在条件中与之匹配。所以而不是:
RewriteCond %{REQUEST_URI} !^admin/
你需要类似的东西(注意前导斜杠):
RewriteCond %{REQUEST_URI} !^/folder/admin/
或者只是放弃^
:
RewriteCond %{REQUEST_URI} !/admin/