删除index.php但保留第一个段表达式引擎

时间:2013-03-16 20:08:05

标签: mod-rewrite expressionengine

我正在做我的第一个表达引擎网站..我想要删除index.php ..我读了很多并尝试了基本表达引擎重写“删除”,但因为我根据语言重定向我的网站。我很确定有更好的方法! 我在index.php之前有一个lang前缀,如:domain.com/en/index.php/segment1 / .... 现在我使用:

RewriteCond $2 !\.(index|css|js|gif|jpe?g|png|robot.txt|sitemap.xml) [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)?/([^/]*)?/?([^/]*)?/?([^/]*)?/?([^/]*)?$ /$1/index.php?/$2/$3/$4/$5 [L]

有更好或更好的方式!?

它有效,但是如果我有超过4个片段,我将不得不增加6美元等等......确定有更好的方法......

此致..

编辑:

我仍然遇到ChannelImages(DevDemon)和/或ChannelFiles的1个问题。我需要使用domain.com/?ACT=XX测试上传位置xx是一个数字..

我尝试添加     RewriteCond%{REQUEST_URI}!^(ACT =。*)$ [NC]

现在页面重定向到主页.. / fr或/ en ..

1 个答案:

答案 0 :(得分:0)

假设传入的URL结构总是这样:

http://domain.com/LangCode/anything

其中LangCodeanything是变量,您可以在根目录中的一个.htaccess文件中尝试:

Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI}  !\.(index|css|js|gif|jpe?g|png) [NC]
RewriteCond %{REQUEST_URI}  !(robot.txt|sitemap.xml)        [NC]
RewriteCond %{REQUEST_URI}  !index\.php                     [NC]
RewriteRule ^([^/]+)/(.*)/?$  /$1/index.php?/$2             [NC,L]

静默地映射到:

http://domain.com/LangCode/index.php?/anything

对于永久和可见的重定向,将[NC,L]替换为[R = 301,NC,L]