mod rewrite / iran / iran / to / iran /

时间:2009-07-08 10:40:49

标签: apache mod-rewrite

我想做一个简单的重写

http://www.example.com/iran/iran/province/Yazd

http://www.example.com/iran/province/Yazd

这是我在“iran”文件夹中放入的codeigniter应用程序。班级名称是伊朗,这就是为什么彼此之后有2个'伊朗'。 我已经设法从重写

的网址中删除了我的codeigniter'index.php'
 RewriteRule ^(.*)$ iran/index.php?/$1 [L]

2 个答案:

答案 0 :(得分:5)

尝试将Rewritebase添加到iran文件夹中的.htaccess。

RewriteBase   /iran

然后将您的重写替换为

RewriteRule ^(.*)$ index.php?/$1 [L]

原始答案:

RewriteEngine on
RewriteRule ^/iran/iran/(.*)$ /iran/$1 [L]

答案 1 :(得分:4)

我认为您在文档根目录中的.htaccess文件中使用该规则。如果是这样,请尝试以下规则:

RewriteRule ^iran/(iran/.*) /$1 [L,R=301]

RewriteCond %{REQUEST_URI} !^/iran/index\.php
RewriteRule ^iran/(.*) iran/index.php?%{REQUEST_URI} [L]

第一种方法是将/iran/iran/ foo 从外部重定向到/iran/ foo 。第二个是将/iran/ foo 的任何请求内部传递给/iran/index.php?/iran/ foo