1

我正在做我的第一个表达式引擎站点.. 我想删除 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..

4

1 回答 1

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]

于 2013-03-16T23:16:40.347 回答